在JS中使用正则。
正则表达式用来干啥?
用来匹配字符串,校验数据来保证安全性,采集一些数据。
在 JS 中用正则的两种风格:
1 | //JS风格 |
search
search
是字符串的方法,用来在字符串中找符合正则表达式的字符,返回一个下标。
1 | let str='Aweaqesdfaerq'; |
match
match
也是字符串的方法,用来提取出来字符串中匹配正则表达式的字符,返回的是一个数组,里面是符合要求的字符串。
1 | let str='f34rrfsdf 45tsdgsrdg 5terg56456fdghdr675 dsf3434535645645645674567'; |
replace
replace
也是字符串的方法,替换掉匹配正则表达式的东西。
1 | let str='asdfde we fsadfas weAr efAf'; |
test
test
是正则的方法,举个🌰:注意test有个毛病,就是有一部分正则符合就让过,这种情况下就要使用[修饰符^ $
](#修饰符 ^ $
)
1 | // 校验 QQ 号,1开头 5-12 个数字 |
元字符 []
任何一个
1
2/a[abc]q/ 匹配的是:aaq,abq,acq
但是不能匹配 abbq范围
1
2
3
4/[a-z]/i
/[0-9]/
/[a-z0-9]/
注意:如果要匹配 3-55 不能这样写 [3-59]排除
1
[^a-z0-9] 匹配除了 a-z 0-9 以外的东西
转义 \
1 | \d [0-9] |
量词 {n}
在正则中不加量词,就是一个。
1 | {n} /a{6}/ 匹配6个a /\d{11}/ 匹配11个数字 |
修饰符 ^
是用来说明条件的。栗子:校验QQ号
1 | ^ 行首 ⚠️注意: ^ 放在 [] 里面是排除,没在里面就是行首 |
或 |
⚠️ 注意,或运算符的优先级特别低,要使用()
来提升优先级。
1 | /\.jpg|gif|png$/ |