RegEx恰好是两三个字

时间:2014-12-15 03:23:28

标签: javascript html regex unicode words

有人可以帮我解决这个问题吗?

起初我试图找出如何简单地检查包含一个或两个单词的输入,并且我能够发现那将是\w* ?\w+并且恰好包含两个单词将与{{{ 1}}我得到了类似的东西(这不起作用):

\w+ \w+

我以后发现它应该不包含一两个,而是两三个单词。由于我无法弄清楚两个单词的RegEx,我不得不在这里寻求帮助。

就像我说的那样,我需要它只允许输入没有数字的两个或三个单词,并添加这些字母čČćĆđĐšŠžŽ - < /强>

另外我需要忽略空白输入,这就是/^$|^([a-zA-ZčČćĆđĐšŠžŽ -])\w+ \w+$/存在的原因。

我真的非常非常新,所以任何帮助都会受到赞赏。

实施例

  • MarkoMarković
  • John Smith
  • Mary-Jane Austin
  • John III Johnson

2 个答案:

答案 0 :(得分:2)

只需更换&#34; word&#34;的新定义所有\w的字符。这恰好是2个单词,中间只有1个空格:

/^$|^[a-zA-ZčČćĆđĐšŠžŽ-]+ [a-zA-ZčČćĆđĐšŠžŽ-]+$/

正好2或3个单词:

/^$|^[a-zA-ZčČćĆđĐšŠžŽ-]+ [a-zA-ZčČćĆđĐšŠžŽ-]+( [a-zA-ZčČćĆđĐšŠžŽ-]+)?$/

请注意,我已删除了您的角色类中的空格,因为它不应被视为&#34; word&#34;或您的&#34; word&#34;的一部分。伯爵会陷入困境。

答案 1 :(得分:1)

您可以使用Unicode正则表达式对其进行过滤。

[\p{L}\s-]+ 

\ p {L}:这将匹配任何语言的任何unicode字母。
\ s:空间角色。
- :短划线( - )。

你可以看到matches here

有关unicode正则表达式的更多信息,您可以refer this