preg_replace不起作用 - 没有任何变化



我从我的一个cms验证中获得了下一个模式:

'/^[^0-9!<>,;?=+()@#"°{}_$%:¤|]*$/u'

我有一个表单,我发送到php名字变量,它必须通过以前的验证。所以我preg_replace来消毒字符串。 我做这个:

preg_replace('/^[0-9!<>,;?=+()@#"°{}_$%:¤|]*$/u', '', $firstname);

但没有任何改变。 可以帮忙吗?

https://regexr.com/56u94

你想用一个空字符串替换所有这些字符,所以去掉。您必须使用稍微不同的正则表达式。

preg_replace('/[0-9!<>,;?=+()@#"°{}_$%:¤|]/u', '', "foobar_123123_&90481");

https://3v4l.org/RUk4Z

说明:使用 ^ 表示字符串必须以该字符之一开头。用 $,你说它必须以其中一个字符结尾。使用 * 表示该类型的 0 个或多个字符。

但是你想要的只是用空字符串替换匹配的每个字符,所以你不需要那些^, $ and *修饰符/限制器。

相关内容

最新更新