JS 字符串String对象

包装类型和字符串的不可变性

  • 1.包装类型
  • 包装类型:简单数据类型对应的复杂形势!
  //包装类型:String/Number/Boolean;
    //简单类型:string/number/boolean/undefined/null;

    //1.包装类型;
      var obj = new Object();
      obj.aaa = 111;//自定义属性
      console.log(obj.aaa);// 111 获取属性值

      //number:简单数据类型不可以自定义属性
      var num = 111;
      num.bbb = 222;
      console.log(num.bbb);// undefined 简单数据类型不可以自定义属性;

      //简单数据类型有属性!!!
      var str = "abc";
      console.log(str.length); // 3
  • 2.字符串的不可变性

(字符串一旦定义就不会被修改,想要修改重新开辟空间)

根据索引查字符

1.charAt( )

//1.字符串.charAt(索引值);    字符串中对应索引值的字符。
//兼容性很棒;
例:
    var str = "0Aabcd我&";
    console.log(str.charAt(1));// A
    console.log(str.charAt(3));// b
    console.log(str.charAt(str.length-2)); // 我
    console.log(str.charAt(str.length-1)); // &

2.字符串[索引值]

// 用法 str[0]
字符串[索引值] // 和数组一样;但是兼容性不好;H5新增,ie678不支持; 用法和charAt一样
例:
    var str = "0Aabcd我&";
    console.log(str[1]); // A
    console.log(str[3]); // b
    console.log(str[str.length-2]); // 我
    console.log(str[str.length-1]); // &

3.字符串.charCodeAt(索引值)

字符串.charCodeAt(索引值); // 给索引,查对应的Unicode编码;
console.log(str.charCodeAt(0)); // 48
console.log(str.charCodeAt(1)); // 65
console.log(str.charCodeAt(2)); // 97

根据字符查索引

1.indexOf( )

例:
    //indexOf(); 给字符查索引(从前往后)
    var str = "abcdcbb";
    console.log(str.indexOf("a"));// 0
    console.log(str.indexOf("b"));// 1
    console.log(str.indexOf("xxx"));//查不到返回 -1
    //查多个字符
    console.log(str.indexOf("abc"));// 0 以首个单词字符为准;
    console.log(str.indexOf("ac")); // 不完整或者顺序不对都是-1;
    console.log(str.indexOf("acb"));// 不完整或者顺序不对都是-1;

2.lastIndexOf()

lastIndexOf();   // 给字符查索引(从后往前)
//同理indexOf;
//字符串一旦声明,索引值就固定了,无论从前往后,还是从后往前,索引值都是固定的
var str = "abcdcbb";
console.log(str.lastIndexOf("b"));//6

字符串连接和截取

concat( )

// 拼接字符串  (拼接字符串更喜欢直接用 + )
var str1 = "123";
var str2 = "abc";
console.log(str1.concat(str2)); // 123abc

//拼接数组
var arr1 = [11,22,33];
var arr2 = [44,55,66];
console.log(arr1.concat(arr2)); // [1, 12, 33, 44, 55, 66]

slice( )

var str = "123abc";
slice() //从start位置开始,截取到end位置,end取不到
//和数组的完全一样: 字符串.slice(开始索引值,结束索引值);
console.log(str3.slice(3));        //从索引值为3的元素截取到最后  abc
console.log(str3.slice(0,3));    //包左不包右 123
console.log(str3.slice(-2));    //从后面截取两个 bc
console.log(str3.slice(3,0));    s//前面一个数大,后面的数小;  返回 "";

substr( )

var str = "123abc";
substr()       //开始索引值,截取几个;
console.log(str3.substr(3));    //从索引值为3的元素截取到最后 abc
console.log(str3.substr(2,1));    //从索引值为2的往后截取一个 3
console.log(str3.substr(-2));    //从后面截取两个 bc
//前后不一样大没问题,因为第二个参数是截取几个的意思;

substring( )

var str = "123abc";
substring()     //开始索引值,结束索引值;
//和slice();同样
console.log(str3.substring(3));        //从索引值为3的元素截取到最后  abc
console.log(str3.substring(0,3));    //包左不包右 123
//不同:
console.log(str3.substring(-2));    //全部截取 123abc
console.log(str3.substring(3,4));    //智能调换  a (截取索引为3的第四个字符)
console.log(str3.substring(3,5));    //智能调换  ab (从索引为3的开始截取到第5个字符)

字符串大小写转换

str.toLowerCase();  // 英文字符转换成小写;
str.toUpperCase();  // 英文字符转换成大写;
//上传文件的时候用;   因为后缀名,不区分大小写;

trim( ) 去除字符串前后空白

search( ) 给字符查索引

replace( ) 替换

var str = "Today is a good day, today is a good day.";
//无法忽略大小写,而且只能替换一个  Tomorrow is a good day, today is a good day.
console.log(str.replace("Today","Tomorrow"));
//g: 全局替换;   i: 忽略大小写!   Tomorrow is a good day, Tomorrow is a good day.
console.log(str.replace(/today/ig,"Tomorrow"));

split( ) 字符串转化成数组

// split() 和 join() 是一对!
var str = "aaa|bbb|ccc";    //字符串会根据参数被分割成几部分;变成一个数组;
console.log(str.split("|"));// ["aaa", "bbb", "ccc"] 按 | 进行分割 , 参数不会出现在数组中;
console.log(str.split());    // ["aaa|bbb|ccc"] 不带参数,整体作为一个元素;
console.log(str.split(""));    // ["a", "a", "a", "|", "b", "b", "b", "|", "c", "c", "c"] 每一个字符都算一个元素;

字符串案例

1.判断一个字符串中出现次数最多的字符,统计这个次数

    var str = "abcoefoxyozzopp";
//  a:1,b:1,c:1......   键值对;    对象或者json记录;
//    思路:遍历字符串中的每一个元素,从json/对象中查找.
//    判断:有的话,值自增1;没有的话,设置该属性,值为1;
    var json = {};//将来往里面装属性和值;{属性就是字符串中的元素,值就是出现的次数}
    //for循环遍历
    for(var i=0;i<str.length;i++){
        //判断:有的话,值自增1;没有的话,设置该属性,值为1;
        var zimu = str.charAt(i);//str里面的每一个字符串;根据i自增可以获取到每一个
        if(json[zimu] === undefined){//把字符作为json中的属性查找,如果为undefined就说明不存在;
            //没有就添加一个
            json[zimu] = 1;//给这个属性,赋值为1;
        }else{
            //如果存在,就把值在原有基础上+1;
            json[zimu] += 1;
        }
    }
    console.log(json); // {a: 1, b: 1, c: 1, o: 4, e: 1, …}

2.获取url中?后面的内容,并转化成对象的形式。例如:http://www.itaaaaa.com/login?...

    var str = "http://wwwaitaaaaa.com/login?name=zs&age=18&a=1&b=2";
    //思路:找到?,然后截取到最末尾;把字符串按照&分割;可以再次按照=分割,然后创建对象
    var index = str.lastIndexOf("?");
    console.log(index); // 28
    var str2 = str.slice(index+1);
    console.log(str2); // name=zs&age=18&a=1&b=2
    //以&符号分割转换成数组;
    var arr = str2.split("&");
       console.log(arr); // ["name=zs", "age=18", "a=1", "b=2"]

    var obj = new Object();
    //for循环把数组中的每一个元素都遍历出来,然后前面的做属性,后面的做值;
    for(var i=0;i<arr.length;i++){
        //把数组中的元素,再次切割,然后根据索引值设置属性和值;
        var newArr = arr[i].split("=");
        //新数组中的第一个做属性,第二个做值;
        obj[newArr[0]] = newArr[1];
    }

    console.log(obj); // {name: "zs", age: "18", a: "1", b: "2"}

原文地址:https://www.cnblogs.com/jeffjoy/p/9637966.html

时间: 2024-10-12 20:42:51

JS 字符串String对象的相关文章

JavaScript基础13——js的string对象

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>js的string对象</title> 6 <script type="text/javascript"> 7 var str = "abcdefg"; 8 document.write("str字符串:"

js:字符串(string)转json

第一种方式: 使用js函数eval(); testJson=eval(testJson);是错误的转换方式. 正确的转换方式需要加(): testJson = eval("(" + testJson + ")"); eval()的速度非常快,但是他可以编译以及执行任何javaScript程序,所以会存在安全问题.在使用eval().来源必须是值得信赖的.需要使用更安全的json解析器.在服务器不严格的编码在json或者如果不严格验证的输入,就有可能提供无效的json

js 判断字符串是否包含某字符串,String对象中查找子字符,indexOf

1 var Cts = "bblText"; 2 3 if(Cts.indexOf("Text") > 0 ) 4 { 5 alert('Cts中包含Text字符串'); 6 } indexOf用法:  返回 String 对象内第一次出现子字符串的字符位置.       strObj.indexOf(subString[, startIndex])       参数    strObj       必选项.String 对象或文字.       subStr

js中String对象slice()方法跟subString()的区别

slice() 和 substring() ECMAScript 提供了两种方法从子串创建字符串值,即 slice() 和 substring().这两种方法返回的都是要处理的字符串的子串,都接受一个或两个参数.第一个参数是要获取的子串的起始位置,第二个参数(如果使用的话)是要获取子串终止前的位置(也就是说,获取终止位置处的字符不包括在返回的值内).如果省略第二个参数,终止位就默认为字符串的长度. 与 concat() 方法一样,slice() 和 substring() 方法都不改变 Stri

JS之string对象

1.创建一个字符串的方式:方式1: new String("字符串的内容"); 由于没有equals方法,故比较字符串内容时,采用toString()方法,转换为字符串 方式2: var str = "字符串的内容"; 2.字符串常用的方法: anchor() 生产锚点 //就是超链接中的锚点设置 blink() 为元素添加blink标签 charAt() 返回指定索引位置处的字符. //返回字符串中的索引值 charCodeAt() 回一个整数,代表指定位置上字符

原生JS:String对象详解

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); String对象 本文参考MDN做的详细整理,方便大家参考[MDN](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript) JavaScript中的 String 类型用于表示文本型的数据. 它是由无符号整数

为js的String对象添加replaceall属性

js中和java中string不一样,没有replaceall方法,只能调用replace方法替换一个字符,后来我自己想了一个办法来替换但是感觉不怎么好,后来通过查找google发现还可以使用正则表达式 1 String.prototype.replaceAllx = function(rStr, repStr) { 2   //rStr为查找的字符串.  3   //repStr为替换的字符串  4    var str=this;  5    while(true){  6       if

js字符串String常用方法

1.   charAt()         返回指定位置的字符. str.charAt(index) index 为必须参数,类型为number(0到str.length-1之间,否则该方法返回 空串)另外:str.charAt()即不带参数和str.charAt(NaN)均返回字符串的第一个字符 2.   charCodeAt()       返回在指定的位置的字符的 Unicode 编码. str.charCodeAt(index) index 为必须参数,类型为number(0到str.l

JS中string对象的一些方法

原文地址:  http://www.dreamdu.com/javascript/object_string/ string.slice(startPos,endPos)---返回被截取的字符串.注:此函数同样可以操作数组,原理相同. slice函数参数 startPos -- 返回字符串的开始位置(取负数是,从字符串的末尾开始计算.也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推.) endPos -- 可选参数,返回字符串的结束位置,如果无此参数为字符串的结尾(取负数是,从字