作者: 杜先生 | 发表于
2020-09-12 12:32 |
分类
web |
阅读 782 |
评论 0
var num = 10, str = null;
str = num.toString();
str = new String(num);
str = '' + num;
var str = "I,love,you,Do,you,love,me";
var result = null;
result = str.split(','); // ['I','love','you','do','you','love','me']
result = str.split(',', 3); // ['I','love','you']
result = str.split(',', 13); // ['I','love','you','do','you','love','me']
从字符串的开头(或指定位置)开始查找,找到第一个匹配的子字符串后返回该子字符(串)的首字符在整个字符串中的对应索引值;找不到返回 -1。
传递两个参数:indexOf(str, start)
参数 2 是可以为 任意整数的,即使指定位置不存在字符。
var str = 'I,love,you,do,you,love,me';
var index = null;
index = str.indexOf('love'); // 2
index = str.indexOf('lave'); // -1
index = str.indexOf('love', 3); // 18
从字符串的末尾(或指定位置)开始查找,找到第一个匹配的子字符串后返回该子字符(串)的首字符在整个字符串中的对应索引值;找不到返回 -1。对应的索引值仍是正序位置
传递两个参数:lastIndexOf(str, start)
var str = 'I,love,you,do,you,love,me';
var index = null;
index = str.lastIndexOf('love'); // 18
index = str.lastIndexOf('lave'); // -1
index = str.lastIndexOf('love', 16); // 2
参数 2 是可以为 任意整数的,即使指定位置不存在字符。这两个方法中负整数没有倒数位置的含义,正常取值范围为 [0, length)
参数 2 如果为函数,则函数参数的规定:
- 参数 1 为每次匹配到的子字符串
- 参数 2 为匹配到的子字符串的首字符的索引值位置
- 参数 3 为进行匹配替换的字符串本身
// 普通用法,只替换第一个
var str = "I,love,you,Do,you,love,me";
var result = null;
result = str.replace('love','hate'); // 'I,hate,you,do,you,love,me'
// 正则全局替换
var str = "I,love,you,Do,you,love,me";
var result = null;
result = str.replace(/love/g, 'hate'); // 'I,hate,you,do,you,hate,me'
// 复杂使用
var str = "I,love,you,Do,you,love,me";
var result = null, i = 0;
result = str.replace(/o/g, function () {
return ++i;
});
// I,l1ve,y2u,D3,y4u,l5ve,me
查找位置取值范围为 [0, length),必须为整数
var str = 'I,love,you,Do,you,love,me';
var char = null;
char = str.charAt(8); // 'o' 字符串索引值从 0 开始
char = str.charAt(58); // '' 超出查找范围返回 空字符串,不是 null
var str = 'I,love,you,Do,you,love,me';
var char = null;
char = str.charCodeAt(8); // 111
char = str.charCodeAt(58); // NaN 超出范围返回 NaN
var str1 = 'Hello';
var str2 = ' World';
var str = str1 + str2; // 'Hello World';
若参数为费字符串,则方法内部会先强制转为字符串,然后拼接。
var str1 = 'I';
var str2 = ' Love';
var str3 = ' You';
var str4 = { str: 'too' }
var str = str1.concat(str2, str3, str4); // I Love You[object Object]
传递两个参数:slice(start, end)
var str = '0123456789';
var str1 = str.slice(2); // '23456789'
var str2 = str.slice(2, 6); // '2345'
var str3 = str.slice(-2); // '89'
var str4 = str.slice(-6, -4); // '45'
传递两个参数:substr(start, length)
var str = '0123456789';
var str1 = str.substr(2, 5); // '23456'
var str2 = str.substr(-7, 5); // '34567'
var str3 = str.substr(3); // '3456789'
var str4 = str.substr(-3); // '789'
传递两个参数:substring(start, end)
var str = '0123456789';
var str1 = str.substring(2, 6); // '2345'
var str2 = str.substring(2); // '23456789'
var str = 'HELLO WORLD';
str = str.toLowerCase(); // 'hello world'
var str = 'hello world';
str = str.toUpperCase(); // 'HELLO WORLD'
传递一个参数:match(regexp)
var str = 'I,love,you,Do,you,love,me';
var pattern = /love/;
var arr = str.match(pattern);
// ["love", index: 2, input: "I,love,you,Do,you,love,me"]
var str = 'I,love,you,Do,you,love,me';
var pattern = /love/g;
var arr = str.match(pattern); // ["love", "love"]
var str = 'I,love,you,Do,you,love,me';
var pattern = /hate/;
var arr = str.match(pattern); // null
regexp.exec(str),将字符串作为参数传递
使用全局匹配似乎没有效果......
var str = 'I,love,you,Do,you,love,me';
var pattern = /love/;
var arr = pattern.exec(str);
// ["love", index: 2, input: "I,love,you,Do,you,love,me"]
传递一个参数:search(str || regexp)
var str = 'I,love,you,Do,you,love,me';
var pattern = /love/;
var index = str.search(pattern); // 2
// ...
空字符串也可以使用此方法,返回值仍为 空字符串
对于用户输入框内容整理很有用
var str = ' a b c ';
str = str.trim();
console.log(str); // 'a b c'
温馨提示