我想只保留数字并从变量中删除所有字符。
例如:
input: +012-(34).56.(ASD)+:"{}|78*9
output: 0123456789
答案 0 :(得分:11)
这是如何做到这一点:
$numbers = preg_replace('/[^0-9]+/', '', '+012-(34).56.(ASD)+:"{}|78*9');
echo $numbers;
<强>输出:强>
0123456789
答案 1 :(得分:6)
返回字符串$ value,删除除数字字符以外的所有字符。
通过Zend_Filter进行静态调用的示例:
echo Zend_Filter::filterStatic('abc-123-def-456', 'Digits'); // 123456
数字实例的示例
$digits = new Zend_Filter_Digits;
echo $digits->filter('abc-123-def-456'); // 123456;
在内部,过滤器将使用preg_replace
来处理输入字符串。根据是否使用UTF8和Unicode编译正则表达式引擎,将使用以下模式之一:
[^0-9]
- 如果禁用Unicode则过滤[^[:digit:]]
- 使用mbstring [\p{^N}]
- 过滤没有mbstring的值请参阅http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Filter/Digits.php