使用RegEx限制字符串长度

我写了 regex </ code>来检查表单中的输入数字:</ p>

  if(!preg_match(“/ ^ 0 \ d {10} + | ^ 9 \ d {9} + /”,$ _ POST ['number'])){
\ echo “错误”;
}其他{
echo“Ok”;
}
</ code> </ pre>

此代码将检查最小长度,但如果长度超过10 或者9个字符,这个正则表达式不起作用!</ p>

我该怎么办? 我应该在正则表达式后检查 strlen </ code>还是我可以限制最大长度?</ p>

更新:</ strong> </ p>

如果以0开头,则字符串长度应为10个字符,如果以9开头则应为9个字符,并且应以其他方式返回false(或多或少的长度,以不同的数字开头......)</ p>
</ div>

展开原文

原文

I wrote this regex for checking the input number from my form:

if (!preg_match("/^0\d{10}+|^9\d{9}+/",$_POST['number'])){
   echo "Error";
}else{
   echo "Ok";
}

this code will check the minimum length but if length is more than 10 or 9 characters, this regex cannot work !

What should I do ? should I check with strlen after Regex or I can limit the maximum length ?

UPDATE:

the string length should be exactly 10 characters if start with 0 and should be exactly 9 characters if start with 9, and should return false on another ways (more or less length, start with different numbers and ...)

dongxu4023
dongxu4023 只是因为它的数字并不意味着它是一个整数。例如00000000001!=1。
大约 5 年之前 回复
doubipeng1336
doubipeng1336 为什么在七个地狱中你会将整数验证为带有正则表达式长度检查的字符串?intval($_POST['number'])>=100000000&&intval($_POST['number'])<1000000000
大约 5 年之前 回复
dongqie7806
dongqie7806 谢谢,我无法理解你的意思,我也更新了我的问题
大约 5 年之前 回复
duanque3125
duanque3125 ^[09]\d{9,10)?
大约 5 年之前 回复

2个回答



您可能只想使用 $ </ code>将字符串锚定在最后。 也可以在数字量词之后删除 + </ code>:</ p>

  ^(?: 0 \ d {9} | 9 \ d {8})$

</ code> </ pre>

请参阅regex101.com上的测试</ a> </ p>
</ div>

展开原文

原文

Possibly you just want to anchor the string at the end using $. Also can drop the + after the numeric quantifier:

^(?:0\d{9}|9\d{8})$

See test at regex101.com



您可以使用此正则表达式:</ p>

 '/ ^(0 \ d {  9} | 9 \ d {8})$ /'
</ code> </ pre>

如果字符串长度为0,则字符串长度正好为10个字符,如果字符串长度恰好为9个字符,则 输入以9开头。</ p>
</ div>

展开原文

原文

You can use this regex:

'/^(0\d{9}|9\d{8})$/'

This will allow string length exactly 10 characters if it starts with 0 and should be exactly 9 characters if input starts with 9.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐