在所有字母的所有字母与exept别的空间正则表达式(Regular Expression for a

2019-10-17 01:34发布

我试图与jQuery的名称字段过滤器,我试过很多的正则表达式,没有他们的工作充分。

所有我需要的是使名称字段名称字段 - 闲来无事,如亚当·斯密杰里米例如。 所以就没有可能键入$或/或_或〜或0-9或别的什么吗? 这个怎么做?

我想这应该是:

/[^\\p{L}]+([^0-9])+$/

是啊,如果你键入比如“亚当JE4”它仅适用,但如果你继续写“亚当Je4remy”它不工作,并验证其是否有误?

如何实现呢?

Answer 1:

如果你定义的名称something that consists of 1 or more words, separated by spaces, where each word consists of one or more letters, and starts with uppercase ,这是写像...

/^[A-Z][a-z]+(\s+[A-Z][a-z]+)*$/

但是,它实际上要复杂得多,看到的-它不仅是关于字母( \p{L}在你的榜样; BTW,财产的unicode类不被JS的支持,你必须使用插件(如这一个 ,例如)到实现这样的功能)。

例如,你可以让你的名字撇号? 如果是这样,如何对它们进行使用(可能没有名字有两个单引号接近,这样的- I''van Ivanov什么连字符约大小写不同的规则是什么:??你会考虑布莱恩d FOY ?一个真正的名字,例如与等等...

问题的关键是,你必须权衡你真正希望看到与您正则表达式的复杂性。



Answer 2:

严格限制名的格式一样,是不好的做法,因为它没有考虑到案件的种种 - 在他们的名字的人撇号和破折号,人谁使用其它字符等欧洲/亚洲国家。

请参见本文的详细信息: http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/



Answer 3:

答案是:/ ^ [AZ \ S] + $ /



文章来源: Regular Expression for all letters in all alphabets with spaces exept anything else