<?php
function toconv(string)
{
$gogo = array("a" => "b","cd" => "e");
$string = str_replace(
array_keys( $gogo ),
array_values( $gogo ),
$string
);
return $string;
}
?>
Как я могу реализовать это в JavaScript?






String.replace () в Javascript получает регулярные выражения вместо строк, а вот перевод. Вам нужно добавить модификатор 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>
И сделать так, чтобы это можно было делать прямо из массива:
<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>
Преобразование функции 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("~\b@\b~",$check)) || (preg_match("~\b.net\b~",$check)) || (preg_match("~\b.com\b~",$check)) || (preg_match("~\b@\b~",$check)) || (preg_match("~\b.edu\b~",$check)) || (preg_match("~\b.gov\b~",$check)))
{
exception("personal info not allowed");
redirect(base_url() . 'edit_profile');
}
Спасибо за правку, никф, я явно пропустил возвращаемое значение! -)