如何匹配 unicode 字符正则表达式

How to match unicode character regex

提问人:RayJ_inSJ 提问时间:11/12/2020 更新时间:11/12/2020 访问量:100

问:

我有输入和正则表达式

  const input = `iPhone Xʀ`;
  
  console.log(input.match(/^([\w\d\-\s]*)/));

我无法弄清楚如何匹配 unicode 字符。ʀ

我尝试了,如另一篇 SO 帖子中所述。 还尝试将 unicode 作为修饰符。\\p{L}u

JavaScript 正则表达式 Unicode

评论


答:

2赞 Brian Lee 11/12/2020 #1

与标志结合使用:\p{L}gu

const input = `iPhone Xʀ`;
console.log(input.match(/^([\w\d\-\s]*\p{L})/gu));
  
// output:

// [
//  "iPhone Xʀ"
// ]

评论

1赞 RayJ_inSJ 11/12/2020
谢谢你的回答。不使用标志也有效g
0赞 Brian Lee 11/12/2020
@RayJ_inSJ 很乐意为您提供帮助。关于标志,如果省略它,则生成的数组有两个条目,只有一个条目。不确定这对您的情况是否有影响,但值得指出。g
0赞 webelf000 11/12/2020 #2

请获取字符的 Unicode 并使用以下模式。

  const input = `iPhone Xʀ`;
  console.log(input.match(/^([\w\d\-\s]*)\x{0280}/));

评论

0赞 Brian Lee 11/13/2020
此答案无法正常工作,而是返回而不是匹配数组。null