• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    js正则表达式中的问号几种用法小结

    在表示重复的字符后面加问号,比如+?,*?,{2,3}?可以停止匹配的贪婪模式。

    var pattern=/\w{2,3}/;
    console.log("aaaa".match(pattern)[0]);
    /*结果"aaa";贪婪模式下会尽可能多的匹配,
    所以会匹配3个重复的字符
    */
    var pattern2=/\w{2,3}?/;
    console.log("aaaa".match(pattern2)[0]);
    /*
    *结果"aa";加问号后会尽可能少的匹配重复次数,
    *所以匹配到了2个重复的字符
    */

    在分组内使用?:可以产生没有编号的分组,比如

    var pattern=/(ab)\w+(ba)/;
    console.log("abcba_".replace(pattern,"$1"));
    /*结果"ab_";匹配到的字符被第一个分组(ab)
    *替换
    */
    var pattern2=/(?:ab)\w+(ba)/;
    console.log("abcba_".replace(pattern2,"$1"));
    /*
    *结果"ba_";第一次分组内加入了?:,产生的是一个
    *没有编号的分组,所以$1匹配的字符是第二个分组,
    *也就是第一个编号分组(ba)相匹配的文本内容
    */

    (?=)和(?!);零宽正向断言和负向断言,括号内表示某个位置右边必须和=右边匹配上,或者不和!后的字符匹配。

    var pattern=/str(?=ings)ing/;
    console.log("strings.a".match(pattern));
    console.log("strings.a".match(/string(?=s)/));
    console.log("string_x".match(pattern));
    console.log("string_x".match(/string(?=s)/));
    /*前两个结果是["string"],后两个结果是null;
    *str(?=ings)ing/匹配"string",r后面的位置右边必须跟
    *上ings;和/string(?=s)/一样;匹配"string";g后面的位置
    *的右边必须跟一个s。"string_x"虽然也含有"string"但是
    *不满足(?=...)括号内的条件
    */
    var pattern=/string(?!s)/;
    console.log("strings".match(pattern));//null
    console.log("string.".match(pattern));//["string"]
    /*(?!...)某位置右边不能有!后匹配的字符,
    *string(?!s)/匹配"string","g"后不能跟"s"
    */

    在表示重复次数时,代表重复0次或1次

    您可能感兴趣的文章:
    • swift中的正则表达式小结
    • 正则表达式(括号)、[中括号]、{大括号}的区别小结
    • jQuery中校验时间格式的正则表达式小结
    • 正则中需要转义的特殊字符小结
    • PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
    • php正则表达匹配中文问题分析小结
    • ExtJs 正则表达式小结
    • PHP 正则表达式常用函数使用小结
    • 正则表达式小结篇
    上一篇:使用正则表达式找出不包含特定字符串的条目
    下一篇:php正则表达式取得内容所有链接的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    js正则表达式中的问号几种用法小结 正则,表达式,中的,问号,