从字符串中删除(几乎)所有非数字字符


Removing (nearly) all non-numeric characters from a string

所以我已经创建了一个数字格式生成器,它将采用人类电话号码,并按照HSCIC规则和条例应用适当的格式,我遇到的一个问题是数字验证。

例如,我到达一个步骤,就在删除所有空格之后,我想再次检查数字,删除除以下字符外的所有字符:数字:0 - 9字母:E, X, T -不区分大小写特殊:+,:

我上网看了看,但我找不到只保留这几个字符的方法。感谢所有的帮助!

如果我理解正确的话,你可以这样写:

$re = "/[0-9XxTtEe+:]*/"; 
$str = "394160etg9834ztg";  // <-- User Input
preg_match_all($re, $str, $matches);

$matches中应该是允许的所有字符。将$matches

中匹配的结果合并