javascript正则表达式学习笔记
一、js中正则表达式的3个修饰符:i、g、m
- 加了i之后的正则表达式不再区分大小写(默认区分大小写匹配)
var reg = /j/;
reg.test(‘JavaScript’); // 结果为false
var reg = /j/i;
reg.test(‘JavaScript’); // 结果为true - 加了g之后的正则表达式将执行全局匹配(默认匹配一次后停止)
var reg = /a/;
‘javascript’.replace(reg,‘e’); // 执行结果为 ‘jevascript’
var reg = /a/g;
‘javascript’.replace(reg,‘e’); // 执行结果为 ‘jevescript’ - 加了m之后将执行多行匹配(默认匹配一行)
var reg = /^s/;
reg.test(‘java\nscript’); // 执行结果为false
var reg = /^s/m;
reg.test(‘java\nscript’); // 执行结果为true
二、涉及到正则表达式常用的方法
- match(reg) // 返回匹配到的字符串,将找寻到的字符以数组形式返回,如没有则返回null
- replace(reg,’…’) // 替换指定内容
- search(reg) // 返回匹配内容的开始位置,如未找到,则返回-1
三、转义字符
. 表示任意字符
\d 数字
\D 非数字
\w 字符
\W 非字符
\s 空格
\S 非空格
\1,\2,\3…重复第n个子项
四、匹配项
? 相当于{0,1}
+ 相当于{1,}
* 相当于{0,}
正则表达式中的小括号中的内容作为一个整体来处理,进行简单的分组
常用正则表达式
- 验证手机号码 11 位,1[3-9]开头的正则表达式
var reg = /^1[3-9][0-9]{9}$/; - 验证邮箱格式
var reg = /^ [a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/; - 验证 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-9 ↩︎