更改用户输入的位数

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 位 :) 您似乎错过了问题的全部要点

以上是关于更改用户输入的位数的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 HTML5 日期输入字段的模式? [复制]

如何从用户的输入中找到平均值和中位数? [复制]

三位数各个数位的和

三位数各个数位的和

三位数各个数位的和

三位数各个数位的和