转换JavaScript正则表达式为PHP
P粉465675962
P粉465675962 2023-10-23 22:58:33
[PHP讨论组]

我知道这个问题已经被问了大约十几次,但从技术上讲,这个问题并不是一个骗局(如果您愿意,请检查其他问题);)

基本上,我有一个 Javascript 正则表达式来检查用于前端验证的电子邮件地址,并且我使用 CodeIgniter 在后端进行双重检查,以防前端验证无法正常运行(浏览器问题)例如。)这是一个相当长的正则表达式,我不知道从哪里开始手动转换它。

我正在寻找一种将 JS 正则表达式转换为 PHP 正则表达式的工具 - 我还没有在类似问题的任何答案中找到它(当然,有可能这样一个工具不存在。)好吧,我撒谎了 - 其中一个建议了一个花费 39.95 美元的工具,但我真的不想花那么多钱来转换单个表达式(不,没有免费试用版,因为由上述问题的答案建议。)

这是 Javascript 表达式,由 aSeptik 慷慨提供:

/^((([a-z]|d|[!#$%&'*+-/=?^_`{|}~]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+(.([a-z]|d|[!#$%&'*+-/=?^_`{|}~]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+)*)|((x22)((((x20|x09)*(x0dx0a))?(x20|x09)+)?(([x01-x08x0bx0cx0e-x1fx7f]|x21|[x23-x5b]|[x5d-x7e]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])|(\([x01-x09x0bx0cx0d-x7f]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF]))))*(((x20|x09)*(x0dx0a))?(x20|x09)+)?(x22)))@((([a-z]|d|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])|(([a-z]|d|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])([a-z]|d|-|.|_|~|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])*([a-z]|d|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF]))).)+(([a-z]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])|(([a-z]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])([a-z]|d|-|.|_|~|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])*([a-z]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF]))).?$/i

还有 CodeIgniter 使用的那个,我不想使用它,因为它不遵循相同的规则(不允许某些有效地址):

/^([a-z0-9+_-]+)(.[a-z0-9+_-]+)*@([a-z0-9-]+.)+[a-z]{2,6}$/ix

我想使用 PHP 中的 Javascript 正则表达式设置的相同规则

出现这种不一致的情况,我的前端代码说电子邮件地址没问题,然后 Codeigniter 说不行,这当然是我试图在应用程序中修复的行为。

感谢您提供的所有提示! :D

P粉465675962
P粉465675962

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号