字符串方法 | 说明 |
---|---|
charAt() | 返回字符串中的第 n 个字符 |
charCodeAt() | 返回字符串中的第 n 个字符的代码 |
indexOf() | 检索字符串 |
lastIndexOf() | 从后向前检索一个字符串 |
match() | 找到一个或多个正则表达式的匹配 |
search() | 检索与正则表达式相匹配的子串 |
查找字符
使用字符串的 charAt() 和 chatCodeAt() 方法,可以根据参数(非负整数的下标值)返回指定位置的字符或字符编码。对于 charAt() 方法来说,如果参数不在 0 和字符串的 length-1 之间,则返回空字符串;而对于 charCodeAt() 方法来说,则返回 NaN,而不是 0 或空字符串。
示例1
下面示例为 String 类型扩展一个原型方法,用来把字符串转换为数组。在函数中使用 charAt() 方法读取字符串中每个字符,然后装入一个数组并返回。- String.prototype.toArray = function () { //把字符串转换为数组
- var 1 = this.length; a = []; //获取当前字符串长度,并定义空数组
- if (1) { //如果存在则执行循环操作,预防空字符串
- for (var i = 0; i < 1; i ++) { //遍历字符串,枚举每个字符
- a.push(this.charAt(i)); //把每个字符按顺序装入数组
- }
- }
- return a; //返回数组
- }
- var s = "abcdefghijklmn".toArray(); //把字符串转换为数组
- for (var i in s) { //遍历返回数组,显示每个字符
- console.log(s[i]);
- }
查找字符串
使用字符串的 indexOf() 和 lastIndexOf() 方法,可以根据参数字符串,返回指定子字符串的下标位置。这两个方法都有两个参数,说明如下。- 第一个参数为一个子字符串,指定要查找的目标。
- 第二个参数为一个整数,指定查找的起始位置,取值范围是 0~length-1。
- 如果值为负数,则视为 0,相当于从第一个字符开始查找。
- 如果省略了这个参数,也将从字符串的第一个字符开始查找。
- 如果值大于等于 length 属性值,则视为当前字符串中没有指定的子字符串,返回 -1。
示例2
下面代码查询字符串中首个字母 a 的下标位置。- var s = "JavaScript";
- var i = s.indexOf("a");
- console.log(i); //返回值为1,即字符串中第二个字符
示例3
下面代码查询 URL 字符串中首个字母 n 的下标位置。- var s = "c.biancheng.net";
- var a = s.indexOf("biancheng"); //返回值为3,即第一个字符n的下标位置
示例4
下面代码分别查询 URL 字符串中两个点号字符下标的位置。- var s = "c.biancheng.net";
- var b = s.indexOf("."); //返回值为1,即第一个字符.的下标位置
- var e = s.indexOf(".", b + 1); //返回值为11,即第二个字符.的下标位置
示例5
下面代码按从右到左的顺序查询 URL 字符串中最后一个点号字符的下标位置。- var s = "c.biancheng.net";
- var n = s.lastIndexOf("."); //返回值为11,即第二个字符.的下标位置
示例6
lastIndexOf() 方法的第二个参数指定开始查找的下标位置,但是,将从该点开始向左查找,而不是向右查找。- var s = "http://c.biancheng.net";
- var n = s.lastIndexOf(".", 11); //返回值是8,而不是18
- var s = "http://c.biancheng.net";
- var n = s.lastIndexOf("c"); //返回值为7
搜索字符串
search() 方法和 indexOf() 的功能是相同的,查找指定字符串第一次出现的位置。但是 search() 方法仅有一个参数,定义匹配模式。该方法没有 lastIndexOf() 的反向检索功能,也不支持全局模式。示例7
下面代码使用 search() 方法匹配斜杠字符在 URL 字符串的下标位置。- var s = "c.biancheng.net";
- n="s.search("//");"
- search() 方法的参数为正则表达式(RegExp 对象)。如果参数不是 RegExp 对象,则 JavaScript 会使用 RegExp() 函数把它转换为 RegExp 对象。
- search() 方法遵循从左到右的查找顺序,并返回第一个匹配的子字符串的起始下标位置值。如果没有找到,则返回 -1。
- search() 方法无法查找指定的范围,始终返回的第一个匹配子字符串的下标值,没有 indexOf() 方法灵活。
匹配字符串
match() 方法能够找出所有匹配的子字符串,并以数组的形式返回。示例8
下面代码使用 match() 方法找到字符串中所有字母 c,并返回它们。- var s = "http://c.biancheng.net";
- var a = s.match(/c/n); //全局匹配所有字符c
- console.log(a); //返回数组[c,c]。
- var a = s.match(/c/); //返回数组[h]
当不执行全局匹配时,如果匹配模式包含子表达式,则返回子表达式匹配的信息。
示例9
下面代码使用 match() 方法匹配 URL 字符串中所有点号字符。- var s = "http://c.biancheng.net";
- var a = s.match(/(\.).*(\.).*(\.)/ ); //执行一次匹配检索
- console.log(a.length);
- console.log(a[0]);
- console.log(a[1]);
- console.log(a[2]);
- console.log(a[3]);
在上面示例中,数组 a 包含 4 个元素,其中第一个元素存放的是匹配文本,其余元素存放的是每个正则表达式的子表达式匹配的文本。
另外,返回的数组还包含两个对象属性,其中 index 属性记录匹配文本的起始位置,input 属性记录的是被操作的字符串。
- console.log(a.index);
- console.log(a.input);
标签:返回,字符,匹配,js,var,查找,搜索,字符串 来源: https://www.cnblogs.com/guohaodongll/p/16264117.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。