更改用户输入的位数
Posted
技术标签:
【中文标题】更改用户输入的位数【英文标题】:change number of digits user inputs 【发布时间】:2021-09-19 16:11:41 【问题描述】:我试图在我的网站上设置一个登录/注册部分,我发现了一个 github 帐户,其中包含满足我目标的代码。 This are the github files 无论如何,我唯一想改变的是,当用户注册一个新帐户时,输入的电话号码的位数必须是 8 位而不是 10 位(github 大佬设置的)。但是,我不知道如何将部分代码更改为我想要的结果。这是github当初为了保证用户输入10位数字而设置的代码。
if(!preg_match("/^[0-9]10+$/", $_mobile_number))
$_mobileErr = '<div class="alert alert-danger">
Only 10-digit mobile numbers allowed.
</div>';
我认为这里也必须改变一些东西:
if( (filter_var($_email, FILTER_VALIDATE_EMAIL)) &&
(preg_match("/^[0-9]10+$/", $_mobile_number)))
)
即使我将[0-9]10
设置为[0-7]8
,问题仍然存在。
【问题讨论】:
正则表达式中有一个+
不属于那里...
哦,当然你必须更改错误信息:)
【参考方案1】:
要检查字符串是否只有 8 个字符,请将 10
更改为 8
,这是测试长度的正则表达式的一部分,[0-9]
设置允许哪些数字,当然所有介于 0 和 9 之间的数字仍然允许,但只有8个
同时更改输出以说出正确的内容。
if(!preg_match("/^[0-9]8$/", $_mobile_number))
$_mobileErr = '<div class="alert alert-danger">
Only 8-digit mobile numbers allowed.
</div>';
同样在此测试中,10
需要更改为 8
,并且不需要将 +
删除
if( (filter_var($_email, FILTER_VALIDATE_EMAIL)) &&
(preg_match("/^[0-9]8$/", $_mobile_number)))
)
【讨论】:
【参考方案2】:这应该可以工作
if(!preg_match("/^[0-9]0,8$/", $_mobile_number))
$_mobileErr = '<div class="alert alert-danger">Only 10-digit mobile numbers allowed.</div>';
【讨论】:
电话号码必须是 8 位而不是 10 位 :) 您似乎错过了问题的全部要点以上是关于更改用户输入的位数的主要内容,如果未能解决你的问题,请参考以下文章