对于非零,我有/^[1-9][0-9]*$/
和字母数字^[0-9a-zA-Z ]+$
,但我不知道如何合并这些。
除了单个0
之外,请帮助使用正则表达式来处理任何字母数字模式答案 0 :(得分:3)
您可以使用此模式阻止以0
^(?!0)[0-9a-zA-Z ]+$
如果01
可以,但不只是0
使用此模式
^(?!0$)[0-9a-zA-Z ]+$
答案 1 :(得分:1)
这里你需要的是:
/^[1-9a-zA-Z ]+$/
解释:允许从1到9的数字,从A到Z的char(非敏感情况)和允许的空格。
答案 2 :(得分:1)
没有预见,你可以使用:
^[1-9a-zA-Z][0-9a-zA-Z ]*$
当然,前瞻性更短:
^(?!0$)[0-9a-zA-Z ]+$
答案 3 :(得分:0)
这个问题有很多好的答案。
但考虑到OP的问题,我认为最好的方法是:
(^[1-9a-zA-Z ]$|^[1-9a-zA-Z ][0-9a-zA-Z ]+$)
^[1-9a-zA-Z ]$
如果只有一个字符
^[1-9a-zA-Z ][0-9a-zA-Z ]+$
如果有多个字符。
答案 4 :(得分:0)
对不起,这些都不起作用,我不得不阅读手册并提出有效的手册。我得到了其他人发布的答案的帮助。
([^0]|[0-9a-zA-Z_ ]{2,}&)
如果一个字符,而不是一个零。如果有一个以上的字符,数字,字母,下划线和空格。
测试如下:
$string0 = 0;
$string1 = 1;
$string2 = 9;
$string3 = '1 - 3 Million'; // is telling this is zero
$string4 = 'false';
$string5 = '0 - 3 Million';
$string6 = '011';
$regex = '([^0]|[0-9a-zA-Z_ ]{2,}&)';
$modifiers = '';
$exp = chr(1) . $regex . chr(1) . $modifiers;
$expresion = $exp;
echo 'CHR(1):'.chr(1).' END';
echo '<br/>';
echo 'EXPRESSION 1:'.$exp.' END';
echo '<br/>';
echo 'Is this non-zero? '.preg_match($expresion, $string0);
echo '<br/>';
echo 'Is this non-zero? '.preg_match($expresion, $string1);
echo '<br/>';
echo 'Is this non-zero? '.preg_match($expresion, $string2);
echo '<br/>';
echo 'Is this non-zero? '.preg_match($expresion, $string3);
echo '<br/>';
echo 'Is this non-zero? '.preg_match($expresion, $string4);
echo '<br/>';
echo 'Is this non-zero? '.preg_match($expresion, $string5);
echo '<br/>';
echo 'Is this non-zero? '.preg_match($expresion, $string6);
输出
EXPRESSION 1:([^0]|[0-9a-zA-Z_ ]{2,}&) END
Is this non-zero? 0
Is this non-zero? 1
Is this non-zero? 1
Is this non-zero? 1
Is this non-zero? 1
Is this non-zero? 1
Is this non-zero? 1