首先介绍下这三个方式(w3c):
这三种方式都是javascript用于处理string(字符串)的方式:
* indexOf:返回某个指定的字符串值在字符串中首次出现的位置;
stringObject.indexOf(searchvalue,fromindex)
* match:在字符串内检索指定的值,或找到一个或多个正则表达式的匹配,它返回指定的值;
stringObject.match(searchvalue);stringObject.match(regexp)
* lastIndexOf:返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索;
stringObject.lastIndexOf(searchvalue,fromindex)
今天在进行字符串匹配的时候遇到了一个问题就是当通过window.location.hash获得的url中含有变量的时候就无法匹配成功了。
例如: url="#/terminal/3/program/list" 中数字3是可变的。当你再用indexOf进行匹配的时候就不会成功,这是因为indexOf
由于数字3是可变的所以不能够用indexOf来进行匹配,这时候就要用match方法了。match方式不仅可以检索字符串还可以检索正则表达式。这样的话我们就可以把中间的数字用正则表达式进行表示然后进行检索。So,让我看一下示例:
可以发现indexOf没有匹配成功而下面的match匹配成功了。所以,以后再遇到匹配字符串中有变量的时候,可以先用正则表达式表示变量的内容,然后用match函数进行解决。