正则表达式应用
常见基本语法列表
特别字符 | 描述 |
---|---|
^ | 匹配一个字符串的开始,在【】中使用是,表示不接受表格内表达式的字符集合。 |
$ | 匹配输入字符串的结尾,如果设置RegExp对象的Multiline属性,则KaTeX parse error: Undefined control sequence: \n at position 5: 也匹配”\̲n̲“或者”\r“,要匹配字符本身,请使用$。 |
() | 子表达式 |
* | 匹配前面的子表达式零次或多次 |
+ | 匹配前面的子表达式一次及以上 |
. | 匹配除换行符\n之外的任何单字符 |
[] | 中括号表达式匹配字符范围 [a-zA-Z0-9] 字符集合 |
{} | 一般表示匹配长度 \s{3} 匹配三个空格 |
? | 匹配前面的子表达式零次或一次(0-1),或指明一个非贪婪(匹配尽可能多的字符) |
\ | 将下一个字符标记为特殊字符 为转义字符 |
\b | 匹配一个单词边界,即字与空格间的位置 |
\B | 非单词边界匹配 |
\d | 匹配一个数字 == [0-9] |
\D | 匹配一个非数字 |
非打印字符 | 描述 |
---|---|
\cx | 匹配由x指明的控制字符, \cM 匹配一个Control-M或回车符 |
\f | 匹配一个换页符 |
\n | 匹配一个换行符 |
\r | 匹配一个回车符 |
\s | 匹配任何空白字符,包括空格、制表符、换页符 |
\S | 非空白字符 |
\t | 匹配一个制表符 |
\v | 匹配一个垂直制表符 |
\w | 匹配一个字符 |
运算符优先级(从高到低)
运算符 | 描述 |
---|---|
\ | 转义符 |
() (?😃 (?=) [] | 圆括号、方括号 |
* + ? {n} {n,m} {n,} | x限定符 |
^ $ \xx 任意字符 | 定位点和序列 |
| | 或者 |
相关实战:
1 . 给一个连字符串例如:get-element-by-id转化成驼峰形式。
var str = "get-element-by-id";
var reg = /-\w/g;
var ans = str.replace(reg,function(x){
return x.slice(1).toUpperCase()
})
console.log(ans)
2 . 匹配二进制数字
var str = "10101111"
var reg = /^[01]+$/g
console.log(reg.test(str))
3 . 非零的十进制数字 (有至少一位数字, 但是不能以0开头)
var str = "811"
var reg = /^[1-9][0-9]*$/g
console.log(reg.test(str))
4 . 匹配一年中的12个月
var str = "02"
var reg = /^(0?[1-9]|1[0-2])$/g
console.log(reg.test(str))
5 . 匹配qq号最长为13为
var str = "42593407500"
var reg = /^([1-9]([0-9]{4,12}))$/g
console.log(reg.test(str))