2008-10-25 129 views
2
<?php 
function toconv(string) 
{ 
    $gogo = array("a" => "b","cd" => "e"); 
    $string = str_replace(
     array_keys($gogo), 
     array_values($gogo), 
     $string 
    ); 
    return $string; 
} 
?> 

如何在JavaScript中实现该功能?将PHP函数转换为JavaScript

回答

4

,并使其在某种程度上,在那里你可以从阵列直接做到这一点:

<script type="text/javascript"> 
function toconv(string){ 
    var gogo = {"a":"b", "cd":"e"}, reg; 
    for(x in gogo) { 
     reg = new RegExp(x, "g"); 
     string.replace(x, gogo[x]); 
    } 
    return string; 
} 
</script> 
+0

感谢您的编辑,nickf,我显然错过了回报价值! - ) – roenving 2008-10-25 13:36:52

2

Javascript中的String.replace()接收正则表达式而不是字符串,这里是一个翻译。您需要将g修饰符附加到正则表达式来替换所有的事件,而不是仅替换第一个。

<script> 
function toconv(str) { 
    replacements = ['b','e']; 
    regexes = [/a/g,/cd/g]; 

    for (i=0; i < regexes.length; i++) { 
     str = str.replace(regexes[i],replacements[i]); 
    } 
    return str; 
} 

alert(toconv('acdacd')); 
alert(toconv('foobar')); 
</script> 
-1

转换PHP函数的JavaScript

if (preg_match('/0/', $check) || preg_match('/1/', $check) || preg_match('/2/', $check) || preg_match('/3/', $check) || preg_match('/4/', $check) || preg_match('/5/', $check) || preg_match('/6/', $check) || preg_match('/7/', $check) || preg_match('/8/', $check) || preg_match('/9/', $check)) 
{ 
    exception("personal info not allowed"); 
    redirect(base_url() . 'edit_profile'); 
} 
else if ((preg_match("~\[email protected]\b~",$check)) || (preg_match("~\b.net\b~",$check)) || (preg_match("~\b.com\b~",$check)) || (preg_match("~\[email protected]\b~",$check)) || (preg_match("~\b.edu\b~",$check)) || (preg_match("~\b.gov\b~",$check))) 
{ 
    exception("personal info not allowed"); 
    redirect(base_url() . 'edit_profile'); 
}