匹配模式符
1 |
|
使用技巧
匹配两个字符(串)中甲的内容
1 |
|
表达式 | 说明 |
---|---|
(?!exp) | 零宽负向先行断言 后面不能出现 exp 指定的内容 |
(?<!exp) | 零宽负向后行断言 前面不能出现exp指定的内容 |
A.*?B | 匹配两个字符串A与B中间的字符串包含A与B: |
A.*?(?=B) | 匹配两个字符串A与B中间的字符串包含A但是不包含B: |
(?<=A).*?(?=B) | 匹配两个字符串A与B中间的字符串且不包含A与B: |
?: A | 因子匹配后面有 A 时才开始匹配 |
反向断言
(?=p) p 前面(位置)
(?<=p) p 后面(位置)
(?!p) 除了 p 前面(位置)
(?<!p>) 除了 p 后面(位置)
1 | let rge = /(?<=upload\/).*?(?=\))/; |
匹配汉字
1 | var reg = new RegExp("[\\u4E00-\\u9FFF]+","g"); |
正则表达式修饰符
修饰符 可以在全局搜索中不区分大小写:
修饰符 | 描述 |
---|---|
y | 粘附模式,表示只查找从 lastIndex 开始及之后的字符串。 |
u | Unicode 模式,启用 Unicode 匹配。 |
s | dotAll 模式,表示元字符(.) 匹配任何字符(包括\n 或\r)。. |
i | 执行对大小写不敏感的匹配。 |
g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 |
m | 执行多行匹配。 |
正则表达式模式
方括号用于查找某个范围内的字符:
表达式 | 描述 |
---|---|
[abc] | 查找方括号之间的任何字符。 |
[0-9] | 查找任何从 0 至 9 的数字。 |
[a-z] | 匹配小写a-z |
(x|y) | 查找任何以 | 分隔的选项。 |
[A-Z] | 匹配大写A-Z |
[A-z] | 匹配所有大小写字母 |
符是拥有特殊含义的字符:
元字符 | 描述 |
---|---|
\d | 查找数字。 |
\s | 查找空白字符。 |
\b | 匹配单词边界。 |
\w | 等价于 [A-Z a-z 0-9_] |
\uxxxx | 查找以十六进制数 xxxx 规定的 Unicode 字符。 |
. | 匹配换行符之外得所有 |
量词:
量词 | 描述 |
---|---|
n+ | 匹配任何包含至少一个 n 的字符串。 |
n* | 匹配任何包含零个或多个 n 的字符串。 |
n? | 匹配任何包含零个或一个 n 的字符串。 |
*? | 重复任意次,但尽可能少重复 |
?? | 重复0次或1次,但尽可能少重复 |
{n,m}? | 重复n到m次,但尽可能少重复 |
{n,}? | 重复n次以上,但尽可能少重复 |
+? | 重复1次或更多次,但尽可能少重复 |
其他
| | 选择符 1|2 匹配其中任意 |
---|---|
^ | 开头 |
[^ a-z] | 匹配非a-z |
$ | 匹配结尾 |
/(.)\1+/g | \1则是代表与第一个小括号中要匹配的内容相同,同理,例如“/(.)/1(\d)/2/g”中的“/2”代表的就是”(\d)”,其余的以此类推 |
str.replace(reg,”$1”) | $1和$2则分别表示第一个小括号和第二个小括号所匹配到的内容 |
字符串中的方法
1 | 1、match |
【注意】
1 | 1、每个 RegExp 实例都有下列属性,提供有关模式的各方面信息。 |
1 | matchAll()方法 |
数字转中文
1 | function convertToChinaNum(num) { |
- 本文作者: 王不留行
- 本文链接: https://wyf195075595.github.io/2022/06/17/programming/javascript/正则/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!