一、创建字符串
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。
来源:oschina
链接:https://my.oschina.net/u/2991733/blog/796736