Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从电话号码中删除特殊字符_Php_Regex - Fatal编程技术网

Php 从电话号码中删除特殊字符

Php 从电话号码中删除特殊字符,php,regex,Php,Regex,我需要删除电话号码中的所有特殊字符。 我的前男友的电话号码是这样的 +91-5345534534,040-545453453 最后,我需要所有的ph值都应该是唯一的格式,比如915345534534,040545453453 我需要一个正则表达式来在php中实现这一点 我正在这样努力 $ph_number = "+91-5345534534"; filterNum = filterNum.replaceAll("[^0-9]+", $ph_number); 但是,这是行不通的。请帮我个忙。你把

我需要删除电话号码中的所有特殊字符。 我的前男友的电话号码是这样的
+91-5345534534
040-545453453

最后,我需要所有的ph值都应该是唯一的格式,比如
915345534534
040545453453

我需要一个正则表达式来在php中实现这一点

我正在这样努力

$ph_number = "+91-5345534534";
filterNum = filterNum.replaceAll("[^0-9]+", $ph_number);

但是,这是行不通的。请帮我个忙。

你把语言弄混了。第一行代码确实是PHP,但第二行是JS

尽管您正在寻找preg_replace函数

$ph_number = preg_replace("/[^0-9]/", "", $ph_number);

前输出->+91-534534

$phone = preg_replace('/[^\dxX]/', '', $ph_number);
echo $phone;

输出->之后->915345534534

似乎更像是js代码而不是php代码。您是否意识到,通过实现,您已经无法区分国际数字和国家数字了?前导的
+
是电话号码的一部分。为什么要在字符类中使用
xX
?这没什么,只要删除它就行了,不会影响它。我使用了,因为我有这样的字符串+91-92x89XX786
$phone = preg_replace('/[^\dxX]/', '', $ph_number);
echo $phone;