实际上我为此做了一个正则表达式,以避免假名(至少没有一些奇怪的符号)。我在PHP中这样做。正则表达式是:
/ [ \ ^ < , \ " @ \ / \ { \ } \ ( \ ) \ * \ $ % \ ? = > : \ | ; # ] + /
但它失败了,我不知道为什么(只是不检测符号)。我想要的是,如果其中一些符号(例如,@#* / \),则返回false(与所有其他正则表达式一样)。
非常感谢你!
PS:对不起,我完全忘记了。我想要所有类型的名字:带有',¨,ñ,包括但不包括日本独有的名字。名称或姓氏也可以包括空格!答案 0 :(得分:2)
我没有看过你的正则表达式(你搞砸了格式化,这没有帮助),但我愿意打赌这是错的。 (实际上,我认为你有逗号作为禁止的角色。在那里,我赢了我的赌注。逗号是罕见的,但常规,以美国名字。)
阅读Patrick McKenzie's article “Falsehoods Programmers Believe About Names”。如果您在此之后仍想使用正则表达式,那么显然您还没有阅读过该文章,请继续阅读。
请记住,每当你拒绝一个名字无效时,就会有人誓言杀死你的孩子,并将他们的孙子孙女杀死到第七代。This has been said so well before that I can but cite the Truth (just read “names” where is says “HTML”)。您无法使用regexp验证名称。即使是Perl增强的不规则表达式也无法验证名称。甚至John T也无法使用正则表达式验证名称。中心无法忍受为时已晚。名称无效なसर्वरदोषהצפתמחסנית
不要使用regexps来验证名称!想想孩子们!
- Gilles“Bobby”O'Malley-McDonald - U,Jr。
答案 1 :(得分:1)
^ [A-Za-z,。] + $
仅允许A到Z,空格,句点和逗号。 A到Z很明显。标题需要句号和逗号(即:Dougie Howser,M.D。)。
答案 2 :(得分:0)
你可以用另一种方式做,如果它只包含字母,没有数字或特殊字符,则返回true。
就像这样我相信(对不起,自从我完成正则表达式以来已经很长时间了):
m/^[a-zA-Z]+$/