我有一个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": …