javascript正则表达式学习笔记

Source

javascript正则表达式学习笔记

一、js中正则表达式的3个修饰符:i、g、m

  1. 加了i之后的正则表达式不再区分大小写(默认区分大小写匹配)
    var reg = /j/;
    reg.test(‘JavaScript’); // 结果为false
    var reg = /j/i;
    reg.test(‘JavaScript’); // 结果为true
  2. 加了g之后的正则表达式将执行全局匹配(默认匹配一次后停止)
    var reg = /a/;
    ‘javascript’.replace(reg,‘e’); // 执行结果为 ‘jevascript’
    var reg = /a/g;
    ‘javascript’.replace(reg,‘e’); // 执行结果为 ‘jevescript’
  3. 加了m之后将执行多行匹配(默认匹配一行)
    var reg = /^s/;
    reg.test(‘java\nscript’); // 执行结果为false
    var reg = /^s/m;
    reg.test(‘java\nscript’); // 执行结果为true

二、涉及到正则表达式常用的方法

  1. match(reg) // 返回匹配到的字符串,将找寻到的字符以数组形式返回,如没有则返回null
  2. replace(reg,’…’) // 替换指定内容
  3. search(reg) // 返回匹配内容的开始位置,如未找到,则返回-1

三、转义字符
. 表示任意字符
\d 数字
\D 非数字
\w 字符
\W 非字符
\s 空格
\S 非空格
\1,\2,\3…重复第n个子项

四、匹配项
? 相当于{0,1}
+ 相当于{1,}
* 相当于{0,}

正则表达式中的小括号中的内容作为一个整体来处理,进行简单的分组

常用正则表达式

  1. 验证手机号码 11 位,1[3-9]开头的正则表达式
    var reg = /^1[3-9][0-9]{9}$/;
  2. 验证邮箱格式
    var reg = /^ [a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/;
  3. 验证 15/18位 身份证
    var reg = /(1\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$ )|(^ [1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/;

  1. 1-9 ↩︎