我正在编造虚假的电子邮件地址,我只是想确保它们采用有效的电子邮件格式,因此我尝试删除不在以下集合中的任何字符:
$jusr['email'] = preg_replace('/[^a-zA-Z0-9.-_@]/g', '', $jusr['email']);
我在 Windows 机器上没有遇到任何问题,但在 Linux 开发服务器上,每次运行此代码时都会出现此错误:
Warning: preg_replace() [function.preg-replace]: Unknown modifier 'g' in /var/www/vhosts/....
我认为这是正则表达式字符串,但我无法确定它。帮助不大?谢谢。
澄清:我并不是想容纳所有有效的电子邮件地址(对我的目的来说不必要),我只是需要找出我的 preg_replace 正则表达式出了什么问题。
g
不是 PCRE(PHP 使用的正则表达式实现)中的有效修饰符,因为根本不需要它;preg_replace()
默认情况下将执行全局替换。您会在真正的 Perl 正则表达式和 JavaScript 正则表达式中找到该修饰符,但在 PCRE 中找不到。
只需放下g
:
$jusr['email'] = preg_replace('/[^a-zA-Z0-9.-_@]/', '', $jusr['email']);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)