JavaScript---字符串用法总结

徘徊边缘 提交于 2020-03-15 21:09:17

一、创建字符串

var 变量名 =“值”; 对象类型是 String, 是字符串类型的值,

var  对象名 = new String( "值") ;

var strObj = new String("Hello, String!");  //创建一个字符串对象
  使用typeof运算符查看会发现,上面的myStr类型为string,而strObj类型为object。

二、字符串的长度

String.length

三、isNaN() 函数用于检查其参数是否是非数字值。(不是判断是否为字符串类型)

var str = "123";
alert(isNaN(str)) //false
var str = "sdfs";
alert(isNaN(str)); //true

四、字符串的拼接

1.将两个或多个字符串拼接为一个大的字符串
用一个"+"将两个字符串"相加":

var longString = "One piece " + "plus one more piece.";

2. 要将多个字符串累积为一个字符串,还可以使用"+="操作符:

         var result = "";
         result += "Hello!"
         result += " nice to meet you";   
         alert(result);

3.像警告、确认对话框之类的情况下字符换行 需要使用转义字符"\n"

         var confirmString = "今天天气不错 " +
        "你确定\n 不出去转转";
        var confirmValue = confirm(confirmString);

4. 将这段文本作为HTML内容呈现,\n就无效了,此时用"<br>"代替它

         var dString = "今天天气不错 " +
        "你确定<br> 不出去转转";
        document.write(dString);

5. concat函数(返回一个新函数)

      var str1 = "abc";
      var str2 = 'def';
      var str3 = str1.concat(str2);
      alert(str3);

abcdef

五、大小写转换

String.toUpperCase( );不修改调用字符串,返回一个新的值

      var str = 'sdfASd';
      var news = str.toUpperCase();
      alert(news);

var news = str.toLowerCase();

六、字符串查找

indexOf( "查找的子串“,起始查找位置(默认为0));    indexOf()返回str 中 所查找子串 的开始位置,如果没有找到,则返回-1。

     var str = "abcdef";
      var n=str.indexOf("def");
      alert(n); //3 第一个匹配的位置为3

也许一个字符串会包含另一字符串不止一次,这时第二个参数 startIndex 会派上用场。

下面这个函数演示如何求得一个字符串包含另外一个字符串的次数:

当所查的是子字符串 ,下一次查询的的位置 : pos +=minStr.length;

     function countStr(str,minStr){
     	var count =0;
     	var len =str.length
     	var pos =0;
     	while(pos<len){
     		pos = str.indexOf(minStr,pos);
     		if(pos == -1)break;
     		count++;
     		pos +=minStr.length;
     	}
     	return count;
     }
     
     var str ="abcssabcssabd";
     var num = countStr(str,"abc");
     alert(num);//2

    strObj.lastIndexOf(subString,startindex)该方法自右向左查找,返回subString在strObj中最后出现的位置,如果没有找到,返回-1.

字符串.search("子串");

可以查正则表达式   

七、字符串分割: Split( )

split( ) 方法用于把一个字符串分割成 字符串数组。

stringObject.split(separator,howmany)

separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。

 

howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
    var str="How are you doing today?"
	
    document.write(str.split(" ") + "<br />"); //空格处分割
	document.write(str.split("") + "<br />") ;//如果把空字符串 ("")用作 separator,那么 stringObject    //中的每个字符之间都会被分割。
	document.write(str.split(" ",3)) //返回三个

"2:3:4:5".split(":")	//将返回["2", "3", "4", "5"]
"|a|b|c".split("|")	//将返回["", "a", "b", "c"]

使用下面的代码,可以把句子分割成单词:

var words = sentence.split(' ')

或者使用正则表达式作为 separator:

var words = sentence.split(/\s+/)

如果您希望把单词分割为字母,或者把字符串分割为字符,可使用下面的代码:

"hello".split("")	//可返回 ["h", "e", "l", "l", "o"]

若只需要返回一部分字符,请使用 howmany 参数:

"hello".split("", 3)	//可返回 ["h", "e", "l"]

八、访问子串

slice()

定义:接受一个或者两个参数,第一个参数指定子字符串的开始位置。第二个参数表示子字符串的结束位置(不包括结束位置的那个字符),如果没有传递第二个参数,则将字符串的长度作为结束位置。

1、传递参数为正值情况:

 var str ="helloWorld "; // 一个参数,则将字符串长度作为结束位置
 alert(str.slice(3));       // "loWorld"
 // 两个参数,7位置上的字符为"r",但不包括结束位置的字符
   alert(str.slice(3,7)); // "loWo"

2、传递参数为负值的情况:将负值与字符串长度相加

  // slice()方法会将传入的负值与字符串长度相加。
  var str ="helloWorld";// 一个参数,与字符串长度相加即为slice(7)
  alert(str.slice(-3)); // "rld"
  // 两个参数,与字符串长度相加即为slice(3,6)
  alert(str.slice(3,-4)); // "loW"

3、第二个参数比第一个参数值小的情况:

var str ="helloWorld";
 alert(str.slice(5,3)); // ""返回空值

substring()  --返回一个新的字符串

定义:接受一个或者两个参数,第一个参数指定子字符串的开始位置。第二个参数表示子字符串的结束位置(不包括结束位置的那个字符),如果没有传递第二个参数,则将字符串的长度作为结束位置。

1、传递参数为正值情况:与slice()方法行为相同的

  var str ="helloWorld";
  // 一个参数,则将字符串长度作为结束位置
  alert(str.substring(3)); // "loWorld" 起始索引位置为3,到最后
  // 两个参数,7位置上的字符为"r",但不包括结束位置的字符
  alert(str.substring(3,7)); // "loWo"

2、传递参数为负值的情况:

substring()方法会把所有负值参数转换为0。

  var str ="helloWorld";
  // 两个参数,-4会转换为0,相当于substring(3,0) -->即为 substring(0,3)
  alert(str.substring(3,-4)); // "hel"

substring()方法会将较小的数作为开始位置,将较大的数作为结束位置。如上面的例子substring(3,0) 与substring(0,3)是一样效果的。

substr()

定义:接受一个或者两个参数,第一个参数指定子字符串的开始位置。第二个参数跟之前的方法有些区别,表示返回的字符个数。如果没有传递第二个参数,则将字符串的长度作为结束位置。来看例子:

1、传递参数为正值情况:

  var str ="helloWorld";
  // 一个参数,则将字符串长度作为结束位置
  alert(str.substr(3)); // "loWorld"
  // 两个参数,从位置3开始截取后面7个字符
  alert(str.substr(3,7)); // "loWorld"

2、传递参数为负值的情况:

substr()方法会将 负的第一个参数加上字符串的长度,而将负的第二个参数转换为0。

  var str ="helloWorld";
  // 将第一个负的参数加上字符串的长度--->10-3=7/即为:substr(7,5) ,从位置7开始向后截取5个字符
  alert(str.substr(-3,5)); // "rld"
  // 将第二个参数转换为0// 即为:substr(3,0),即从位置3截取0个字符串,则返回空
  alert(str.substr(3,-2)); // ""

在传递正值参数情况下,slice( ) 和 substring ( ) 行为是一致的,substr()方法在第二个参数上会容易混淆

在传递负值参数情况下,slice() 方法是通过字符串长度相加,符合一般思维,substring()第二个参数转换为0会容易出问题,起始位置会容易变更,substr() 方法负值情况下会出现IE兼容性问题。

slice,substr和substring的区别

slice和substring接收的是起始位置和结束位置(不包括结束位置),而substr接收的则是起始位置和所要返回的字符串长度。

substring是以两个参数中较小一个作为起始位置,较大的参数作为结束位置。

接着,当接收的参数是负数时,slice会将它字符串的长度与对应的负数相加,结果作为参数;substr则仅仅是将第一个参数与字符串长度相加后的结果作为第一个参数;substring则干脆将负参数都直接转换为0。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!