Regular Expression for all letters in all alphabets with spaces exept anything else

纵然是瞬间 提交于 2019-12-11 06:44:25

问题


I'm trying to make a name field filter with jQuery and I tried so many regular expressions and no of them work fully.

All I need is to make the name field as the name field - nothing else, e.g. Adam Jeremy Smith for example. So there would be no possibility to type $ or / or _ or ~ or 0-9 or anything else? How to do this?

I thought it should be:

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

Yeah it works only if you type e.g. 'Adam Je4' but if you continue and write 'Adam Je4remy' it doesn't work and validates it incorrectly?

How to achieve it?


回答1:


If you define name as something that consists of 1 or more words, separated by spaces, where each word consists of one or more letters, and starts with uppercase, it's written something like...

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

But it's actually much more complicated, see - and it's not only about letters (\p{L} in your example; btw, property unicode classes are not supported by JS, you have to use plugins (like this one, for example) to implement such functionality).

For example, will you allow apostrophes in your names? If so, how can they be used (probably no name has two apostrophes close, like this - I''van Ivanov? What about hyphens? What about different capitalization rules: will you consider brian d foy a true name, for example? And so on...

The point is you have to balance what you actually expect to see with the complexity of your regex.




回答2:


Strictly limiting the format of names like that is bad practice, because it fails to take into account all sorts of cases - people with apostrophes and dashes in their names, people from European/Asian countries who use additional characters, and so on.

See this article for more info: http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/




回答3:


The answer is: /^[A-z\s]+$/



来源:https://stackoverflow.com/questions/11531686/regular-expression-for-all-letters-in-all-alphabets-with-spaces-exept-anything-e

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!