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

发布于 2024-11-17 13:53:57 字数 260 浏览 3 评论 0原文

我正在寻找一个正则表达式来验证输入: 在法国,我们可以在名称中使用重音字符,但我找不到任何可以使用的字符。 请您帮我找到如何使用正则表达式: -任何字母 - 任何带重音的字母 -空格 - 和符号“-”(不带引号)

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

感谢您的帮助(抱歉我的英语不好……我是一只青蛙^^)

i'm looking for a regular expression to validate an input :
in France, we can use accented characters in name, and i don't find anything i can use.
please, can you help me to find how to do a regular expression for:
-any letter
-any accented letter
-spaces
- and the sign "-" (without quotes)

i've try something like but it don't seem to be working..
var regealpha =/[^A-Za-z0-9ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ]/;

thx for help (and sorry for my poor english... i'm a froggy ^^ )

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我也只是我 2024-11-24 13:54:05

Maybe you want to use \p{L} (as described here), which matches a unicode letter.

酒与心事 2024-11-24 13:54:04

JavaScript 似乎没有很好的国际化选项。符号 \w 将为您提供所有 [A-Za-z0-9_],但除此之外您还需要规定自己的字符。

看来你们关系很亲密啊。以下正则表达式应该适合您:

/[\wÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ]/g

查看它在这个 jsfiddle 上的工作:

http://jsfiddle.net/jameswiseman /3H2mJ/1/

您将看到正则表达式替换了输入字符串中的所有内容<代码>“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv wxyzÀÁÂàääàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ"与“z”。

编辑

我认为这就是您所需要的:

/[^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

我知道它很长,但如果是这样的话需要的话你应该使用它。

JavaScript doesn't seem to have good internationalization options. The symbol \w will give you all [A-Za-z0-9_], but you'll need to stipulate your own chars in addition to this.

You seem to be quite close. The following regex should work for you:

/[\wÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ]/g

See it working at this jsfiddle:

http://jsfiddle.net/jameswiseman/3H2mJ/1/

You'll see that the regex replaces everything in the input string "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ" with 'z'.

EDIT

I think this is what you need:

/[^a-zA-ZÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ]/

It will tell you if there are characters NOT in the above set. So

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 :-)

Also have a look at this JSFiddle

I know it is long, but if that is what is needed then then you should use it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文