Есть отрывок кода, в котором регулярное выражение определяет номер Рayeer кошелька формата Р1234567 или Р1234567890:
} elseif($typ == 'payeer'){
$x = mb_strtoupper($x,'UTF-8');
$mask = '/^P[0-9]{7,10}$/u';
Помогите заменить ее на регулярное выражение номера телефона. ^(\s*)?(\+)?([- _():=+]?\d[- _():=+]?){10,14}(\s*)?$ не работает. Если кому нужно, вот код всей функции:
public function procVar($x,$pr,$okr,$per,$typ){
$x = trim($x);
if(empty($x)){return false;} else {
$x = strip_tags($x);
$x = str_replace("\\", "", $x);
if($pr == 0){
$x = str_replace(" ", "", $x);
} elseif($pr == 1){
while(mb_strpos($x," ",0,"UTF-8") !== false){
$x = str_replace(" ", " ", $x);
}}
if($okr == 1){
$x = intval($x);
$x = abs($x);
}
if($per == 1){
while(mb_strpos($x,"\r\n\r\n\r\n",0,"UTF-8") !== false){
$x = str_replace("\r\n\r\n\r\n", "\r\n\r\n", $x);
}}
if($typ == 'no'){
$x = addslashes($x);
return $x;
} else {
if($typ == 'md5'){
$x = mb_strtolower($x,'UTF-8');
$mask = '/^[a-z0-9]{32}$/ui';
} elseif($typ == 'payeer'){
$x = mb_strtoupper($x,'UTF-8');
$mask = '/^P[0-9]{7,10}$/u';
} elseif($typ == 'ip'){
$mask = '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/ui';
} elseif($typ == 'country'){
$x = mb_strtoupper($x,'UTF-8');
$mask = '/^[A-Z]{2}$/u';
}
if(preg_match($mask, $x)){
$x = addslashes($x);
return $x;
} else {
return false;
}
}}}