【问题标题】:How can I translate the following JavaScript so that its done in PHP instead?我怎样才能翻译以下 JavaScript 以便它在 PHP 中完成?
【发布时间】:2019-01-25 14:19:38
【问题描述】:

我目前有一个用 JavaScript 编写的电话号码验证脚本,我要做的是将我的代码从 JavaScript 转换为 PHP,因为网站的其余部分在用 PHP 提交后会进行所有验证。

格式规则如下: 第一个和第二个数字必须分别为 0 n 3。第三个数字可以是 0,1,2,3 或 4

<script>
   function validation(){
   var a = document.getElementById("contact").value;
   if((a.charAt(0)!=0) || (a.charAt(1)!=3) || ((a.charAt(2)!=0) && (a.charAt(2)!=1)&& (a.charAt(2)!=2) && (a.charAt(2)!=3) && (a.charAt(2)!=4)))
       {
       document.getElementById("message").innerHTML="Contact number is invalid.";
       return false;
      }
  }
      </script>

【问题讨论】:

  • 所以您不能将其更改为在您的 php 代码中进行验证?你不确定哪一部分?
  • 只需将所有a.charAt(#) 替换为$a[#]
  • 你能展示一个你想要的验证示例吗?
  • @Justinas 您假设开发人员正在使用 jQuery,如果开发人员没有包含 jQuery 库调用,这将立即失败。
  • @DataCure OP 要求使用 PHP,所以它是 PHP 而不是一些 jQuery 代码。

标签: javascript php validation phone-number


【解决方案1】:

要采用您在上面的 Javascript 代码中说明的相同想法,您可以在字符串变量上使用方括号表示法来测试每个位置:

function validation($contact)
{
    return intval($contact[0]) == 0 && intval($contact[1]) == 3 && intval($contact[2]) >= 0 && intval($contact[2]) <= 4;
}

Repl.it

您也可以通过正则表达式匹配更高效、更优雅地实现此功能:

function validation($contact)
{
    return preg_match('/^03[0-4]/', $contact) === 1
}

Repl.it | Regex101

【讨论】:

    【解决方案2】:

    考虑使用正则表达式来验证您的数据。在 PHP 中:

    $rgx = '/^03[0-4]/';   // the expression 
    
    if(preg_match($rgx, $your_number) === 1){
        .....
    } 
    

    034xxxxxxx将匹配

    035xxxxxxx 不会

    如果您想进一步研究正则表达式,这里有一些有用的网站:

    【讨论】:

      猜你喜欢
      • 2018-03-26
      • 2021-01-23
      • 1970-01-01
      • 2015-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多