2011-03-08 88 views
2

我在扩展CodeIgniter表单验证库以检查带有下划线(不包括破折号)的Alpha数值。但我很新的正则表达式的模式,想一些帮助......带下划线的Alpha数字正则表达式模式

目前的alpha_numeric CI有:

return (! preg_match("/^([a-z0-9])+$/i", $str)) ? FALSE : TRUE; 

而对于alpha_dash CI有:

return (! preg_match("/^([-a-z0-9_-])+$/i", $str)) ? FALSE : TRUE; 

而且我m创建'alpha_underscore'(它也是带下划线的字母数字):

这是正确的吗?

return (! preg_match("/^([a-z0-9_])+$/i", $str)) ? FALSE : TRUE; 

我很困惑,为什么有一个“ - ”开头和刚刚复制的“alpha_dash”模式

+2

这两个答案都是正确的,但我选择了codaddict的(我读的使命召唤瘾君子)b/c它更清晰 – Booski 2011-03-08 16:12:11

回答

4

字符类别[-a-z0-9_-][a-z0-9_-][-a-z0-9_]相同。

其中一个-可以被丢弃。

+0

真棒,谢谢 – Booski 2011-03-08 16:07:58

3

字符结束。你可以删除它的一个实例,正则表达式应该工作正常。

+0

因此,澄清,' - '在'alpha_dash'模式中是重复的,我的正则表达式很好? – Booski 2011-03-08 16:06:35

+0

@mtokoly正好。 – eykanal 2011-03-08 16:15:36

相关问题