[英]Using preg_replace()?
我正在尝试理解preg_replace()函数,但它对我来说看起来很神秘。 从这里查看有关函数的文档。 我知道它由三件事组成 - 主题,匹配模式以及替换它的内容。
我目前正试图通过替换不是数字的任何东西来“消毒”数字输入。 到目前为止,我知道我需要允许数字0-9,但删除任何不是数字的内容并将其替换为:“”。
而不是逃避我需要的每一个角色,是否有一些方法可以简单地不允许任何其他字符而不是数字0-9? 此外,如果有人能够阐明“匹配模式”部分如何运作......
如果要清理字符串以替换不是数字的任何内容,您可以编写一个匹配不在列表中的字符的正则表达式。
模式[0-9]
将匹配所有数字。 放置一个插入符号( ^
在设定的开始)相匹配的一切, 是不是在集: [^0-9]
$result = preg_replace('/[^0-9]/', '', $input);
请注意,这也将过滤掉句点/小数点和其他数学标记。 您可以通过允许周期来包括句点/小数点(允许浮点数):
$result = preg_replace('/[^0-9.]/', '', $input);
请注意,句点( .
)是正则表达式中的通配符。 它不需要在括号表达式中进行转义,但它可以在模式的其他位置进行转义。
preg_replace()
比你想象的容易:
$p = "/[A-Z a-z]/";
$r = "";
$s = "12345t7890";
echo preg_replace($p, $r, $s);
输出“123457890” - 注意没有'6'
is_numeric();
是不是解决了你的问题?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.