我正在寻找一个正则表达式来验证输入: 在法国,我们可以在名称中使用重音字符,我找不到任何我可以使用的东西。 拜托,你能帮我找到如何做一个正则表达式: - 任何信件 - 重音字母 -spaces - 和标志“ - ”(没有引号)
我尝试了类似的东西,但它似乎没有起作用.. var regealpha = / [^ A-Za-z0-9ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ] /;
那是求助(对不起我的英语很差......我是个笨蛋^^)答案 0 :(得分:4)
JavaScript似乎没有良好的国际化选项。符号\ w将为您提供所有[A-Za-z0-9_],但除此之外,您还需要规定自己的字符。
你似乎非常接近。以下正则表达式适用于您:
/[\wÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ]/g
看到它在这个jsfiddle工作:
http://jsfiddle.net/jameswiseman/3H2mJ/1/
你会看到正则表达式用'z'替换输入字符串"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ"
中的所有内容。
修改强>
我认为这就是你所需要的:
/[^a-zA-ZÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ]/
它会告诉你上面的集合中是否有字符。所以
var myRegex = /[^a-zA-ZÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ]/;
"C3P0".test(myRegex ); //returns true --> Report Error!
"kangun".test(myRegex ); //returns false --> OK :-)
"kàngun".test(myRegex ); //returns false --> OK :-)
另请查看this JSFiddle
我知道它很长,但如果那就是需要的那么你应该使用它。
答案 1 :(得分:1)
也许你想使用\p{L}
(as described here),它与unicode字母匹配。