【问题标题】:React JS Mobile Number ValidationReact JS 手机号码验证
【发布时间】:2021-09-08 09:45:01
【问题描述】:

在这里,我想知道如何添加这些符号 + - ( ) 进行验证。目前这部分只接受数字。我想同时接受数字和这些符号 + - ( ) 。这是我的代码

 if (typeof !fields["enterprisemobile"]) {
            isValid = false;
            var pattern = new RegExp(/^[0-9\b]+$/);
            if (!pattern.test(fields["enterprisemobile"])) {
                isValid = false;
                errors["enterprisemobile"] = "Mobile Number is invalid";
            } 
           
        }

【问题讨论】:

  • this 对你有帮助吗
  • 只需在正则表达式中添加缺失的字符:new RegExp(/^[0-9\b\+\-\(\)]+$/),这种验证的效率仍然接近 0,因为像 ')-9+ 这样的东西会被视为有效的电话号码。
  • @HarshitRastogi :您所指的帖子侧重于印度特定的电话号码,如果 OP 正在寻求验证其他国家/地区的电话号码,验证标准可能会大不相同。
  • @YevgenGorbunkov 你能把这些符号加上数字吗?
  • @YevgenGorbunkov 因为在这里我不能添加这个()字符

标签: javascript reactjs jsx


【解决方案1】:

替换您的正则表达式以接受新符号。比如:

 if (typeof !fields["enterprisemobile"]) {
            isValid = false;
            var pattern = new RegExp(/^[0-9\b\+\-\(\)]+$/);
            if (!pattern.test(fields["enterprisemobile"])) {
                isValid = false;
                errors["enterprisemobile"] = "Mobile Number is invalid";
            } 
           
        }

如果你想更准确地解释这个正则表达式的含义,你可以去here

【讨论】: