只允许字母;没有标点符号没有号码
答
正在使用的正则表达式不允许使用字母;这与你在标题中报道的内容相反。
/[a-z]/i
就足够了,如果你只想接受字母。如果你想允许像à,è或ç这样的字母,那么你应该扩展正则表达式; /[\p{L}]/ui
应该可以处理所有的Unicode字母。
答
/[^ A-Za-z] * /将匹配除字母之外的所有内容。你不需要指定数字或标点符号。
答
在字符类里面,^意思不是。 所以你在寻找不是的一封信。 你想要的东西像
[A-Za-z]+
答
#^[^a-z]+$#i
你的代码是正确的,你只需要^和$。所以这意味着全部字符从开始到结束都不允许外部字母表。在这里,负面比赛比正面比赛更受欢迎。
+0
它的意思是这样的:if (preg_match('#^[^a-z]+$#i', $string) echo 'outside alphabet found';
–
iroel
2010-07-23 05:47:24
虽然你说的是真的,但它并不回答这个问题。看kiamlaluno的答案。 – 2010-07-23 02:29:05
其实我对kurrel做的是对的。但是在我问这个问题和在我自己的代码执行过程中,这是一个错误。 - 2对我来说,我的歉意。我的原始正则表达式实际上按需要工作。 – atwellpub 2010-07-23 02:45:29
kiamlaluno的第二个版本对于额外字符来说肯定是比较灵活的,但是如果你使用if语句来匹配你不想要的东西,那么你将会寻找负面信息而不是正面信息。 – kurreltheraven 2010-07-23 03:09:34