美文网首页
js正则表达式

js正则表达式

作者: xin激流勇进 | 来源:发表于2017-12-25 16:11 被阅读0次

    定义正则表达式

    • /.../ 用于定义正则表达式
    • /.../g 表示全局匹配
    • /.../i 表示不区分大小写
    • /.../m 表示多行匹配

    JS正则匹配时本身就是支持多行,此处多行匹配只是影响正则表达式^和$, m模式也会使用^$来匹配换行的内容)


    匹配

    JavaScript中支持正则表达式,其主要提供了两个功能:

    test(string)

    检查字符串中是否和正则匹配

    n = 'uui99sdf'
    reg = /\d+/
    reg.test(n)  ---> true
     
    # 只要正则在字符串中存在就匹配,如果想要开头和结尾匹配的话,就需要在正则前后加 ^和$
    

    exec(string)

    获取正则表达式匹配的内容,如果未匹配,值为null,否则,获取匹配成功的数组。

    非全局模式
    获取匹配结果数组,注意:第一个元素是第一个匹配的结果,后面元素是正则子匹配(正则内容分组匹配)

    var pattern = /\bJava\w*\b/;
    var text = "JavaScript is more fun than Java or JavaBeans!";
    result = pattern.exec(text)

    var pattern = /\b(Java)\w*\b/;
    var text = "JavaScript is more fun than Java or JavaBeans!";
    result = pattern.exec(text)

    全局模式
    需要反复调用exec方法,来一个一个获取结果,直到匹配获取结果为null表示获取完毕

    var pattern = /\bJava\w*\b/g;
    var text = "JavaScript is more fun than Java or JavaBeans!";
    result = pattern.exec(text)

    var pattern = /\b(Java)\w*\b/g;
    var text = "JavaScript is more fun than Java or JavaBeans!";
    result = pattern.exec(text)

    字符串中相关方法

    obj.search(regexp)
    获取索引位置,搜索整个字符串,返回匹配成功的第一个位置(g模式无效)

    obj.match(regexp)
    获取匹配内容,搜索整个字符串,获取找到第一个匹配内容,如果正则是g模式找到全部

    obj.replace(regexp, replacement)
    替换匹配替换,正则中有g则替换所有,否则只替换第一个匹配项,
    $数字:匹配的第n个组内容;
    $&:当前匹配的内容;
    $`:位于匹配子串左侧的文本;
    $':位于匹配子串右侧的文本
    $$:直接量$符号

    相关文章

      网友评论

          本文标题:js正则表达式

          本文链接:https://www.haomeiwen.com/subject/owblgxtx.html