修改正则表达式以允许德语变音符号,法语口音和其他有效的欧洲字母

时间:2013-09-25 09:28:32

标签: regex angularjs

我需要验证文本输入,以便用户可以插入可能包含德语变音符号,法语口音和任何其他有效欧洲字符的字符/文本,例如小字号。

我正在使用AngularJS,因此我将验证规则应用于ng-pattern属性,如下所示:

ng-pattern="/^[A-Za-z0-9 \-_.]*$/"

我希望这会涵盖像äöüß这样的角色,但是在测试它时却没有。很抱歉问这么蹩脚的问题,但我在RegEx真的很糟糕!必须有一种比手动列出字母ng-pattern="/^[A-Za-z0-9äöüÄÖÜ \-_.]*$/"

更好的方法

4 个答案:

答案 0 :(得分:13)

Javascript正则表达式不支持unicode属性,包含非拉丁字母的唯一方法是在表达式中明确列出它们:

 [A-Za-z0-9 \-_.äöüß etc]

或使用unicode范围,例如

 [A-Za-z0-9 \-_.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]

(参见http://www.utf8-chartable.de/以供参考)。

答案 1 :(得分:10)

[a-zA-Z\x7f-\xff]包含许多特殊字符,例如äöéßî...

答案 2 :(得分:-1)

您应该能够使用RegEx [\p{L}](在https://regex101.com/试用)但是,这似乎不适用于AngularJS的ng-pattern :(

答案 3 :(得分:-3)

以下内容适用于空格和特殊字符,没有数字 ^[a-zA-ZÀ-ž ]*$