常用
- 把你的猫放在键盘上
- 让它走一圈
- 一段完美的正则就写好了
- 正数:
/^[0-9]+(\.[0-9]+)?$/
- 邮箱
// 较为严格
/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/
// 宽松
/^.+@.+\..+$/
JS 中
String.match()
和 **RegExp.exec()
**还返回两个属性,index
: 匹配的第一个字符位置;input
: 被检索的字符串原文
-
String.search()
: 接受一个字符串或者正则,返回匹配到的第一个
字符的位置 -
String.match()
: 接受一个字符串或者正则,返回数组,或者Null -
String.replace()
: 第一个参数接受一个字符串或正则
,第二个接受一个字符串,返回替换
好的字符串(将第一个参数匹配到的全部替换成第二个字符) -
String.split()
: 第一个参数接受一个字符串或正则
,第二个接受一个数字(限制返回的数组长度),返回分割
好的数组 -
RegExp.test()
: 接受一个字符串,返回Boolean
值 -
RegExp.exec()
: 接受一个字符串,返回数组,或者Null
元字符
以下符号需要匹配时用
\
转义使用
^ $ \ . * + ? () [] {} |
常用写法
-
[A-z]
: 中括号[]
表示匹配A-
z任意单个字符 -
修饰符
i
: 忽略大小写m
: 多行匹配g
: 全局匹配(可以匹配多次)
-
字符匹配
\w
: 字母数字下划线.
: 除了换行符外的任意字符\d
: 任意数字\D
: 任意非数字\s
: 任意空白字符\S
: 任意非空白字符\n
: 匹配换行符
-
量词
*
: 匹配 0 次或多次+
: 匹配 1 次或多次?
: 匹配 0 次或 1 次{n}
: 匹配 n 次{n,m
} : 匹配 n-m 次{n,}
: 匹配 n 次或多次
-
分组
把括号内的项作为一个独立的单元来处理(使用*, +, ?, | , etc)
-
^
:用于中括号[]
,代表匹配非此字符