字符串可以理解为由单个字符组成的数组。所以它可以像数组一样使用:
但是,注意:字符串是“不可更改(imutable)”的,所以str[3]='x'无效,同样的,以下所有字符串方法都不会修改原字符串,而是返回一个新字符串。
以下方法皆通过字符串对象调用,是实例方法:
if(str.toLowerCase() == 'feige'){
'源栈欢迎你'.indexOf('你') //4 '源栈欢迎你'.indexOf('飞哥') //-1
'源栈欢迎你'.substring(2,4) //'欢迎' '源栈欢迎你'.substring(2) //'欢迎你'substring()经常和indexOf()联合使用,@想一想@:干嘛用呢?
复习:正则表达式
示范查出:
创建正则表达式:
var regex = new RegExp("<a.*?/a>", "gi");
gim是指示标志(flag):g=>global(在match()和exec()中体现差异),i => ignore case,m=>multiple line
var reg = /<a.*?>/gim, li = `<li class="dropdown-header">督导班</li> <li><a href="/Course/Confusion/New"><span class="fa fa-eye"></span> 督导班</a> </li> <li><a href="/Course/Confusion/Edit"><span class="fa fa-edit"></span> 疑问发布</a> </li> <li><a href="/Course/Confusion"><span class="fa fa-list"></span> 疑问列表</a> </li> <li class="divider"></li> <li><a href="/Problem?excludeCanceled=true&excludeRewarded=true"><span class="fa fa-list"></span> 列表</a> </li> <li><a href="/Problem/New"><span class="fa fa-edit"></span> 发布</a></li>`; //非常非常坑的函数:返回的是一个数组,数组中却始终只有一个元素,还需要while循环才能取出所有匹配结果 while ((result = reg.exec(li)) !== null) { console.log(result[0] + ': ' + reg.lastIndex); }; console.log(result);
以下几个方法,参数可以是字符串,也可以是正则表达式:
var result = li.replace(reg, function (match, index) { //match: 匹配成功的字符串 //index:字符串所在的位置(索引) //return:用于替换 匹配成功字符串 的字符串 return match.toUpperCase() + 'with index:' + index; });
String()和toString():