Javascript到PHP的转换 - javascript

我有一个libphonenumber软件包的javascript端口,它具有以下功能:

function cleanPhone(a){
    a=a.replace(/[^\d\+]/g,"");
    return a="+"==a.substr(0,1)?"+"+a.replace(/[^\d]/g,""):a.replace(/[^\d]/g,"")
}

我正在尝试将此函数转换为PHP,并想知道这是否正确:

function cleanPhone($a) {
    $a = preg_replace('/[^\d\+]/g',"", $a);
    return $a = "+" == substr(0,1)?"+"+ preg_replace('/[^\d]/g',"", $a) : preg_replace('/[^\d]/g',"", $a);
}

javascript参考方案

g在PCRE中不是有效的修饰符(PHP使用的regex实现)
  因为根本不需要它; preg_replace()将执行全局
  默认替换。您会在真正的Perl正则表达式中找到修饰符
  以及JavaScript正则表达式,但不适用于PCRE。

我会写得更清楚:

function cleanPhone($a) {
    $a = preg_replace('/[^\d\+]/', "", $a);
    if(substr($a, 0, 1) == "+"){
       return "+" + preg_replace('/[^\d]/', "", $a); 
    }else{
      return preg_replace('/[^\d]/',"", $a);
    }
}

还要注意,您缺少子字符串方法substr($string, $startIndex, [$length])的变量标识符

使用ternary operator的缩小版本也应该起作用:

function cleanPhone($a) {
    $a = preg_replace('/[^\d\+]/',"", $a);
    return ("+" == substr($a,0,1))?"+"+ preg_replace('/[^\d]/',"", $a) : preg_replace('/[^\d]/',"", $a);
}

如何在没有for循环的情况下在Javascript中使用Django模板标签 - javascript

我想在JavaScript中使用模板变量:我的问题是在javascript代码中使用for循环,for循环之间的所有事情都会重复..但我不想要....下面粘贴了我的代码..有人可以告诉我更好的方法吗这..因为这看起来很丑..这是我的代码: {% block extra_javascript %} <script src="/static/js…

打印二维阵列 - javascript

我正在尝试打印子元素。在this example之后。怎么做?。$myarray = array("DO"=>array('IDEAS','BRANDS','CREATIVE','CAMPAIGNS'), "JOCKEY"=>a…

执行onclick时获得意外令牌 - javascript

我正在使用onclick事件从PHP调用JS函数。这是我的代码:我在一个函数中,因此我需要通过PHP来完成它,因为然后我会返回:$html = '<input type="checkbox" checked value="1" id="setGetSku" name="se…

使用C#和JavaScript绑定HTML - javascript

我想从C#绑定HTML。我尝试了下面的代码HtmlTextWriter.write("<a onclick=\"window.open('', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes…

Mongo汇总 - javascript

我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …