Javascript Node.js Unicode 正则表达式

标签 javascript regex node.js unicode xregexp

我需要输入验证,良好的输入验证来保持一切干净。所以我想要一个关于“全名”的严格正则表达式,国际化所以我需要 Unicode 支持。我下载了 XRegExp,它将“它们的格式”编译为正则表达式并支持 Unicode:

正确名称:

  • 约翰·埃尔克杰德
  • 安德烈·斯文森
  • 马可·达尔梅达​​
  • 克里斯托弗·拉库尔

名称不正确:

  • 汉斯
  • H4nn3 安徒生
  • 马丁·亨里克森!

所以我需要:

  1. 匹配 unicode 字母 (a, æ)
  2. 匹配 unicode 重音符号(á、Ë 等)
  3. 匹配 unicode 连字符(- _ 等)

在 PHP 中我可以执行以下操作来匹配:

\p{L} (unicode letter)
\p{Mn} (unicode accents)
\p{Pd} (unicode hyphens)

我发现我可以用 XRegExp 来做:

^\p{L}+$ 将匹配“日本”,因此只有第一个字母有效,但我如何才能弄清楚如何执行这些 un​​icode 重音符号、连字符?

感谢您的帮助。

最佳答案

看起来 @lanzz 给了您一些关于名称验证潜在问题的良好反馈,但为了记录,您可以使用您在 XRegExp 中提到的 Unicode 类别,就像使用 PHP 一样。例如,XRegExp('^[\\p{L}\\p{Mn}\\p{Pd} ]+$')。这需要 XRegExp 的 Unicode 类别插件。请注意,由于 JavaScript 字符串文字转义规则,反斜杠被转义。

关于Javascript Node.js Unicode 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12800517/

相关文章:

java - 寻找正则表达式来将此电子邮件传递为有效

regex - Firebase 密码验证允许正则表达式

javascript - 自动将引用从 index.html 复制到 karma.conf.js

javascript - NodeJS 中处理错误响应并再次尝试相同的调用同时避免回调汤的好模式是什么?

javascript - cakephp + extjs = b 为空 || ct 为空

javascript - 有没有办法在安装之前从 JSX 获取 Node/Element/HTMLElement?

javascript - Jstree Leaf Node 是一个可扩展的图标。我想要叶 Node 的减号(-)

javascript - 如何访问数组内部的数组?

regex - 2个网址的正则表达式组合:两者之间相差1个字

javascript - 无法在命令提示符下使用 openai