随笔-正则表达式

前端对于字符串的校验经常性的需要用到正则表达式这个工具,通过字符串自身调用的方法可以进行复杂的字符串匹配:
replace():
用于在字符串中用一些字符替换一个与正则表达式匹配的子串-string.replace(正则,替换的字符)
search:
检索与正则表达式相匹配的子字符串-string.search(正则)
split:
用于把一个字符串分割成字符串数组-string.split(正则,返回数组最大长度-可选)

match:
找到一个或多个正则表达式的匹配,返回的是值不是位置-string.match(正则)

以上是字符串自身调用的方法,还有正则自身可以调用的方法:

	var test = new RegExp("\\w+");
	var test = /\w+/;

test.test(字符串):
用于检测一个字符串是否匹配某个模式,如果字符串中有匹配的值返回 true ,否则返回 false
test.exec(字符串):
用于检索字符串中的正则表达式的匹配,如果字符串中有匹配的值返回该匹配值,否则返回 null

注意:
match与exec不同,在exec的返回的数组中会有index,input,groups这三个属性:
index: 匹配文本第一个字符的位置;
input: 被检索的字符串;
groups: 命名捕获组,如果没有设置全名捕获组groups的值为undefined

正则修饰符:
i执行对大小写不敏感的匹配
g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
m执行多行匹配
方括号方括号用于查找某个范围内的字符
[abc]查找方括号之间的任何字符
[^abc]查找任何不在方括号之间的字符
[0-9]查找任何从 0 至 9 的数字
[a-z]查找任何从小写 a 到小写 z 的字符
[A-Z]查找任何从大写 A 到大写 Z 的字符
[A-z]查找任何从大写 A 到小写 z 的字符
[abcd]查找给定集合内的任何字符
[^abcd]查找给定集合外的任何字符
(red|blue)查找任何指定的选项(red或blue)
元字符拥有特殊含义的字符
.查找单个字符,除了换行和行结束符: /a.b/ 查找a跟b之间只有一个字符的字符串
\w查找数字、字母及下划线, 等价于"[A-Za-z0-9_]"
\W查找非单词字符, 等价于"[^A-Za-z0-9_]"
\d查找数字, 等价于[0-9]
\D查找非数字, 等价于[^0-9]
\s查找空白字符(空格/制表 /回车/换行/垂直换行/换页), 等价于[ \f\n\r\t\v]
\b查找位于单词的开头或结尾的匹配: “er\b"可以匹配"never"中的“er”,但不能匹配"verb"中的"er”
\B匹配非单词边界: “er\B"能匹配"verb"中的"er”,但不能匹配"never"中的"er"
\0查找 NULL 字符
\cx查找由x指明的控制字符, \cM匹配一个Control-M或回车符, x的值必须为A-Z或a-z之一。否则, 将c视为一个原义的"c"字符
\xxx查找以八进制数 xxx 规定的字符, /\127/g 查找w
\xdd查找以十六进制数 dd 规定的字符, /\x57/g 查找w
\uxxxx查找以十六进制数 xxxx 规定的 Unicode 字符, /\u0057/g 查找w
\n查找换行符,等价于\x0a和\cJ
\f查找换页符, 等价于\x0c和\cL
\r查找回车符 , 等价于\x0d和\cM
\t查找制表符, 等价于\x09和\cI
\v查找垂直制表符, 等价于\x09和\cI
量词
\将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符:“n"查找字符"n”。“\n"查找一个换行符。串行”\"查找\ 而 “\(” 则查找 “(”
^查找输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也查找“\n”或“\r”之后的位置
$查找输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置
*查找前面的子表达式零次或多次: zo*能查找“z”以及“zoo”。*等价于{0,}
+查找前面的子表达式一次或多次: “zo+”能查找“zo”以及“zoo”,但不能查找“z”。+等价于{1,}
?查找前面的子表达式零次或一次: “do(es)?”可以查找“does”或“does”中的“do”。?等价于{0,1}
n{X}查找包含 X 个 n 的序列的字符串: /a{2}/ 查找不到"candy," 中的 “a”,但是查找的到 “caandy,” 中的两个 “a”,且查找的是 “caaandy.” 中的前两个 “a”
n{X,}X 是一个正整数,前面的模式 n 连续出现至少 X 次时查找: /a{2,}/ 查找不到 “candy” 中的 “a”,但是查找的到 “caandy” 和 “caaaaaaandy.” 中所有的 “a”
n{X,Y}X 和 Y 为正整数,前面的模式 n 连续出现至少 X 次,至多 Y 次时查找
?=n查找任何其后紧接指定字符串 n 的字符串
?!n任何其后没有紧接指定字符串 n 的字符串
常用正则表达式:
用户名/^[a-z0-9_-]{3,16}$/
密码/^[a-z0-9_-]{6,18}$/
十六进制值`/^#?([a-f0-9]{6}
电子邮箱 /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/或者/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/
URL/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
IP 地址`/((2[0-4]\d
Unicode编码中的汉字范围/^[\u2E80-\u9FFF]+$/
日期(年-月-日)`(\d{4}
日期(月/日/年)`((1[0-2])
时间(小时:分钟, 24小时制)`((1

小记:
正则中要对小括号进行处理需要[]包裹即[)]才能识别
正则中的两个字符之间的获取:/第一个字符(\S*)第二个字符/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值