我需要验证文本输入,以便用户可以插入可能包含德语变音符号,法语口音和任何其他有效欧洲字符的字符/文本,例如小字号。
我正在使用AngularJS,因此我将验证规则应用于ng-pattern
属性,如下所示:
ng-pattern="/^[A-Za-z0-9 \-_.]*$/"
我希望这会涵盖像äöüß这样的角色,但是在测试它时却没有。很抱歉问这么蹩脚的问题,但我在RegEx真的很糟糕!必须有一种比手动列出字母ng-pattern="/^[A-Za-z0-9äöüÄÖÜ \-_.]*$/"
答案 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À-ž ]*$