正则表达式

  • 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑
  • 正则表达式的特点是

1. 代码简洁

2. 灵活性、逻辑性和功能性非常强

3. 可以迅速地用极简单的方式达到字符串的复杂控制

4. 对于刚接触的人来说,比较晦涩难懂。可读性比较差

定义正则表达式

第一种:普通方式

  • var reg = /规则/附加参数
  • var reg=/white/; - 固定方式-只要输入的内容中包含具体的值,就会返回true
var reg=/^white$/; - 只能是white -才会返回true
Var reg = /^[0-9]$/
Var reg = /^1$/

第二种:构造方式

  • var reg=new RegExp("表达式")
var reg=new RegExp("white");

表达式匹配模式

正则表达式_第1张图片

  • [0-9] 数字0-9
  • [a-z] 小写的a-z
  • [A-Z] 大写的A-Z
  • [a-zA-Z] 字母
  • \w : 匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'。
  • + : 匹配前面的子表达式一次或多次
  • {}: 表示次数
  • ?:匹配前面的子表达式零次或一次

使用正则表达式步骤

  • 获取需要校验的值
  • 写校验规则(表达式)
  • 使用test方法校验,语法:reg.test(str); 符合规则返回true, 不满足返回false
  • 根据返回结果做处理

正则表达式符号

正则表达式_第2张图片

正则表达式_第3张图片

  • [0-9]{9}, 0-9可以出现 9 次,固定的次数
  • [0-9]{5,9} , 数字可以出现5-9次
  • [0-9]{5,} , 至少5次,没有上限
  • [0-9]* , 可以不出现,也可以出现很多次
  • + 至少出现1次
  • ? 可以出现,也可以不出现,出现的话就只能是一次

补充:

  • a // 字符小写字母a
  • [a-z] //匹配所有的小写字母
  • [A-Z] //匹配所有的大写字母
  • [a-zA-Z] //匹配所有的字母
  • [0-9] //匹配所有的数字
  • [0-9\.\-] //匹配所有的数字,句号和减号
  • a{2,}    如:baad和aaa,但Nantucket,abab不行, 要求连续出现2次,abcabc, aaaaaabc
  • ^a{1,3}$   a出现1-3次, 如 a,aa或aaa

常用的正则表达式

  • 验证手机号码:"^1[3-9][0-9]{9}$"
  • 验证身份证号:"\d{17}(\d|X|x)";
  • 只能输入数字:"^[0-9]*$"。
  • 只能输入n位的数字:"^\d{n}$"。
  • 验证Email地址:("^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$");
  • 验证用户名或密码: /^[a-zA-Z]{1}([a-zA-Z0-9]|[._-]){3,15}$/

你可能感兴趣的