带有jquery和重音字符的正则表达式

时间:2011-06-27 10:42:29

标签: jquery regex input expression

我正在寻找一个正则表达式来验证输入: 在法国,我们可以在名称中使用重音字符,我找不到任何我可以使用的东西。 拜托,你能帮我找到如何做一个正则表达式: - 任何信件 - 重音字母 -spaces - 和标志“ - ”(没有引号)

我尝试了类似的东西,但它似乎没有起作用.. var regealpha = / [^ A-Za-z0-9ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ] /;

那是求助(对不起我的英语很差......我是个笨蛋^^)

2 个答案:

答案 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字母匹配。