美文网首页
JavaScript正则表达式

JavaScript正则表达式

作者: 吃萝卜的小兔子 | 来源:发表于2017-07-26 17:29 被阅读0次

    基本概念

    按某种规则去匹配符合条件的字符串,这种规则就是正则表达

    RegExp对象  //

    \b 单词边界 g 全局匹配 i忽略大小写 m多行匹配

    构造函数

    var reg = new RegExp('\\bis\\b', 'g');

    元字符 特殊含义字符  \cX  Ctrl+X

    字符类 [abc]

    字符类取反 [^abc]

    范围类 数字[0-9-] 字母[a-zA-Z]  //匹配横线在最后加一个-

    预定义类 \d = [0-9] \D = [^0-9] \s =  空白符[\t\n\x0B\f\r]  \w = [a-zA-Z_0-9]单词字符(字母数字下划线)  //注:大写为取反

    量词 ?0/1  +1/n  *0/n  {n}n  {n,m}n-m  {n,}n++  {0,n}最多n

    贪婪模式    '12345678'.replace(/\d{3,6}/g,'X') 尽量多的匹配 结果X78

    非贪婪模式(量词后加?)  '12345678'.replace(/\d{3,6}?/g,'X') 尽量少的匹配 结果XX78

    分组 (zxc){3}

    或 |  byr(on|ca)sper  结果 byronsper  byrcasper 都可以匹配法到

    反向引用 2015-12-25 ==> 12/25/2015  '2015-12-25'.replace(/(\d{4})-(\d{2})-(\d{2})/g,'$2/$3/$1')

    忽略分组  前面加?:  (?:Byron).(ok)  ok为$1

    正则表达式从文本头部像尾部开始解析,文本尾部为前。

    前瞻 向前检查是否符合断言 符合正向匹配

    后顾 向后检查(js不支持)

    正想前瞻:exp(?=assert)  \w(?=\d)  单词字符后面是数字 匹配该单词

    负向前瞻:exp(?!assert)  \w(!=\d)  相反

    对象属性: global ignoreCase multiline 默认false

    lastIndex:下一次搜索的开始位置

    score:正则表达式的文本对象

    函数(test&exec)

    RegExp.protatype.test(str)  测试有无匹配结果 true false;

    例子:var reg = /\w/;  reg.test('a'); return true; teg.test('$'); return false;

    RegExp.protatype.exec(str).index(匹配文本的第一个字符).toString()(文本,组内容,第二个组内容,···);

    var reg = /\d(\w)\d/g;

    var ts = '$1a2b3c4d';

    while(ret = reg.exec(ts)){

    console.log(ret);

    } //[1a2,a]\n[3c4,c]

    字符串对象方法

    String.protatype.search(reg)  检索字符串中指定子字符串或正则表达式相匹配的子字符串,返回第一个匹配结果 查不到返回-1 不执行全局(忽略g)且每次从第一个字符开始

    (数字(会尝试转成正则),字符串,正则表达式都可以)

    String.protatype.match(reg)  找到一个或多个与regexp匹配的文本 g很重要

    //注:非全局与exec 相同  string和 reg掉了个个儿。

    全局只返回字符串数组  不返回分组信息  没有index,lastIndex属性

    ts.match(reg);//

    String.protatype.split(reg)

    'a,b,c,d'.split(',')//(/,/) =>  ["a","b","c","d"]

    'a1b2c3d4e'.split(/\d/g) => ["a","b","c","d","e"]

    String.protatype.replace(reg,funtion(match,group1,group2,index,origin){

    return group1+group3;

    });//group2会消失

    // match 匹配到的字符串

    // group 分组(没有的话不写)

    // index 匹配的第一个字符位置

    // origin 原字符串

    相关文章

      网友评论

          本文标题:JavaScript正则表达式

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