关闭

http://blog.myspace.cn/e/402025479.htm

983人阅读 评论(0) 收藏 举报

JavaScript中的正则表达式规则与perl语言的完全一致。按照perl语言的方式书写即可。

但是在操作方法上有所不同:

正则表达式方法:test(),exec()
String对象方法:match(),search(),replace(),split()

=========================================

test()方法:
用法:regexp对象实例.test(字符串) 例如var regstr=/^abc/; regstr.test(str)
返回值:如果满足regexp对象实例中定的正则规则,返回true,否则返回false;

exec()方法:
      用法:regexp对象实例.exec(字符串)
      返回值:如果exec方法没有找到匹配,则它返回null。如果它找到匹配,则exec方法返回一个数组,并且更新全局RegExp对象的属性,以反映匹配结果。数组的0元素包含了完整的匹配,而第1到n元素中包含的是匹配中出现的任意一个子匹配。这相当于没有设置全局标志(g)的match方法。如果为正则表达式设置了全局标志,exec从以lastIndex的值指示的位置开始查找。如果没有设置全局标志,exec忽略lastIndex的值,从字符串的起始位置开始搜索。

match()方法:
      用法:string对象.match(regexp对象) 例如var str=" abcdefesg" ; str.match(/abc/);
      返回值:如果match方法没有找到匹配,返回null。如果找到匹配返回一个数组并且更新全局RegExp对象的属性以反映匹配结果。
      备注:match和exec一个很明显的差别是设置了全文搜索参数g后,它返回的数组不再是一个元素,而是所有的元素,第一个匹配结果数组基数为0,第二个为1,以此类推。
      属性:同exec,match也有index,lastIndex,input三个属性,意义也同exec

search()方法:
      用法:string对象.search(regexp对象)
      返回值:search方法指明是否存在相应的匹配。如果找到一个匹配,search方法将返回一个整数值,指明这个匹配距离字符串开始的偏移位置。如果没有找到匹配,则返回-1。
      注意:返回的只是与正则表达式查找内容匹配的第一个子字符串的位置。所以用全局搜索参数就没有意义了。

replace()方法:
      用法:string对象.replace(regexp对象|字符串," 替换的字符串" )
      返回值:如果设置了全文搜索,则全部满足的都将被替换;否则只替换第一个。返回替换后的字符串。
      注意:replace中还可以接受字符串,但只替换第一个满足条件的字符串。

split()方法:
      用法:string对象.split([分割符(可以是字符串或正则表达式)[,限制输出数组个数]])
      返回值:返回string对象被分割的数组
      注意:string对象不会被split方法修改。分割符是可选项,可以是字符串或正则表达式对象,它标识了分割字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。最后一个选项限制输出数组个数也是可选项,该值用来限制返回数组中的元素个数。
      另外,split本身就带有全文匹配的特性,所以可用可不用g参数。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:583244次
    • 积分:3703
    • 等级:
    • 排名:第9043名
    • 原创:39篇
    • 转载:94篇
    • 译文:5篇
    • 评论:14条
    文章分类
    最新评论