JavaScript RegExp \p 元字符
匹配拉丁字母:
let text1 = "A";
let text2 = "Ж";
let pattern = /\p{Script=Latin}/u;亲自试一试 »
匹配 Unicode 字符属性:
let text = "😄";
let pattern = /\p{Emoji}/v;
let result = pattern.test(text);亲自试一试 »描述
Unicode 属性元字符用于匹配具有 Unicode 字符属性的字符。
语法
new RegExp("\p{Unicode property}","v")
或者:
/\p{Unicode 属性}/v
注意
\p 和 \P 仅在 Unicode 感知模式下受支持。
这意味着必须设置 \u 标志或 \v 标志。
Unicode 属性
受 /u 标志支持
| 类别 | 缩写 | 示例 |
|---|---|---|
| Letter | L | ABcd |
| Uppercase_Letter | Lu | ABCD |
| Lowercase_Letter | Ll | abcd |
| Titlecase_letter | Lt | Nj (U+01CB) |
| Modifier_Letter | Lm | ˆ (U+02C6) |
| Other_Letter | Lo | not in Lu/Ll/Lt/Lm |
| Decimal_Number | Nd | 1234 |
| Letter_Number | Nl | Ⅰ Ⅳ Ⅶ |
| Other_Number | No | ¼ ½ ¾ |
| Math_Symbol | Sm | + = ∑ |
| Currency_Symbol | Sc | $ £ € ¥ |
| Other_Symbol | So | © ® |
| Script | Sc | Sc=Greek |
支持 /v 标志
| 类别 | 示例 |
|---|---|
| Emoji | 😀 😁 😂 😃 |
| Emoji_Presentation | |
| Emoji_Modifier | 👩🏿 👩🏾 👩🏽 👩🏼 |
| Emoji_Modifier_Base | |
| Emoji_Component | 👩🦰 👩🦱 👩🦳 👩🦲 |
| Extended_Pictographic | 用于现代表情符号序列 |
正则表达式方法
正则表达式的搜索和替换可以使用不同的方法。
以下是最常用的方法:
字符串方法
| 方法 | 描述 |
|---|---|
| match(regex) | 返回结果数组 |
| matchAll(regex) | 返回结果迭代器 |
| replace(regex) | 返回新字符串 |
| replaceAll(regex) | 返回一个新的字符串 |
| search(regex) | 返回第一个匹配项的索引 |
| split(regex) | 返回一个结果数组 |
正则表达式方法
| 方法 | 描述 |
|---|---|
| regex.exec() | 返回结果迭代器 |
| regex.test() | 返回 true 或 false |
浏览器支持
/\p{Unicode 属性}/ 是 JavaScript 2018 的一项特性。
ES 2018 自 2020 年 6 月起,所有现代浏览器均已支持 ES 2018。
| Chrome 63 |
Edge 79 |
Firefox 78 |
Safari 12 |
Opera 50 |
| 2017年12月 | 2020年1月 | 2020年6月 | 2018年9月 | 2018年1月 |
