我无法找到或创建只匹配字母,空格,重音字母以及西班牙语和德语字母的正则表达式。
我现在正在使用它:
var reg = new RegExp("^[a-z _]*$");
我试过了:
^[:alpha: _]*$
^[a-zA-Z0-9äöüÄÖÜ]*$
^[-\p{L}]*$
有什么想法吗?或者javascript引擎支持的正则表达式是有限的吗?
答案 0 :(得分:3)
第二个到最后一个案例看起来应该有效,但缺少“”和“_”:
/^[a-zA-Z0-9äöüÄÖÜ]*$/.test("aäöüÄÖÜz")
=>在FF 3.6和IE8中为true
/^[a-zA-Z0-9äöüÄÖÜ]*$/.test("é")
=>在FF 3.6和IE8中为false
我无法在the ECMAScript specification找到其他结构。
快乐的编码。
编辑同时检查页面编码并确保它是“unicode”(可能是UTF-8)。如果无法确保这一点,那么在正则表达式中使用\uXXXX
转义序列(无论如何都可以使用转义,并可能有助于源代码编辑/控制)。
答案 1 :(得分:1)
我正在解析名称输入字段,这似乎适用于德语和法语:
^[a-zA-Z\-ÀàÂâÆæÇçÈèÉéÊêËëÎîÏïÔôŒœÙùÛûÜü]*$
有些人的名字像'Rölf-Dieter',这可以让他们通过,同时检查数字。有点极端,但它确实有效!