元子字符
刀刀
0字
0分钟
2026/8/16
元字符是正则表达式中的最小元素,只代表单一(一个)字符
元子字符字符列表
| 元字符 | 说明 | 示例 |
|---|---|---|
| \d | 匹配任意一个数字 | [0-9] |
| \D | 与除了数字以外的任何一个字符匹配 | [^0-9] |
| \w | 与任意一个英文字母,数字或下划线匹配 | [a-zA-Z_] |
| \W | 除了字母,数字或下划线外与任何字符匹配 | [^a-za-z_] |
| \s | 任意一个空白字符匹配,如空格,制表符\t,换行符\n | [\n\f\r\t\v] |
| \S | 除了空白符外任意一个字符匹配 | [^\n\f\r\t\v] |
| . | 匹配除换行符外的任意字符 |
元子字符使用体验
匹配任意数字
js
let fn = 'daodao 2010'
console.log(fn.match(/\d/g)) //["2", "0", "1", "0"]匹配所有电话号码
js
let fn = `
张三:010-99999999,李四:020-88888888
`
let res = fn.match(/\d{3}-\d{7,8}/g)
console.log(res)获取所有用户名
js
let fn = `
张三:010-99999999,李四:020-88888888`
let res = fn.match(/[^:\d-,]+/g)
console.log(res)匹配任意非数字
js
console.log(/\D/.test(2029)) //false匹配字母数字下划线
js
let fn = 'fndd@'
console.log(fn.match(/\w/g)) //["f", "n", "d", "d"]匹配除了字母,数字或下划线外与任何字符匹配
js
console.log(/\W/.test('@')) //true匹配与任意一个空白字符匹配
js
console.log(/\s/.test(' ')) //true
console.log(/\s/.test('\n')) //true匹配除了空白符外任意一个字符匹配
js
let fn = 'fndd@'
console.log(fn.match(/\S/g)) //["f", "n", "d", "d", "@"]如果要匹配点则需要转义
js
let fn = `daodao@com`
console.log(/daodao.com/i.test(fn)) //true
console.log(/daodao\.com/i.test(fn)) //false使用 . 匹配除换行符外任意字符,下面匹配不到 fndd.com 因为有换行符
js
const url = `
https://www.daodao.com
fndd.com
`
console.log(url.match(/.+/)[0])使用 /s 视为单行模式(忽略换行)时,. 可以匹配所有
js
let fn = `
<span>
daodao
fndd
</span>
`
console.log(fn.match(/<span>.*<\/span>/s)) // null
let res = fn.match(/<span>.*<\/span>/s)
console.log(res[0])正则中空格会按普通字符对待
js
let tel = `010 - 999999`
console.log(/\d+-\d+/.test(tel)) //false
console.log(/\d+ - \d+/.test(tel)) //true元子字符所有字符
可以使用 [\s\S] 或 [\d\D] 来匹配所有字符
js
let fn = `
<span>
daodao
fndd
</span>
`
let res = fn.match(/<span>[\s\S]+<\/span>/)
console.log(res[0])