解决了!最终答案位于此问题的底部
我正在尝试使用CodeIgniter创建一个菜单构建器,出于某种原因,我似乎无法理解这个概念,即使它看起来很简单(我是PHP和CI的新手).这应该与CodeIgniter本身关系不大,因为我实际上只将它用于查询和MVC模式.
我有两张桌子:
菜单:
menu_pages:
编辑:这是我想要实现的结构:
array(
[0] => array(
[menu_id] => 1,
[menu_name] => 'Menu 1',
[menu_pages] => array(
[0] => array(
[id] => 1,
[page_id] => 1,
[menu_id] => 1,
[item_name] => 'Home',
[item_order] => 0,
[item_level] => 0,
[parent_id] => ''
),
[1] => array(
[id] => 2,
[page_id] => 2,
[menu_id] => 1,
[item_name] => 'About',
[item_order] => 0,
[item_level] => 0,
[parent_id] => ''
)
)
), …Run Code Online (Sandbox Code Playgroud) 我知道这个问题已经被问过十几遍了,但是从技术上讲,这不是一个骗子(如果需要,请检查其他问题);)
基本上,我有一个Javascript正则表达式来检查用于前端验证的电子邮件地址,并且我使用CodeIgniter在后端进行双重检查,以防前端验证无法正常运行(例如浏览器问题) 。)这是一个很长的正则表达式,我不知道从哪里开始手动转换它。
我正在寻找一种将JS regexes转换为PHP regexes的工具 -在类似问题的答案中都没有找到一个(当然,这样的工具可能不存在。)好的,我谎言- 其中一个建议使用的工具的价格为39.95美元,但我真的不想花那么多钱来转换单个表达式(并且不,没有上述问题的答案所建议的免费试用。)
这里的JavaScript表达式,由aSeptik慷慨地提供:
/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i
Run Code Online (Sandbox Code Playgroud)
还有一个我不想使用的CodeIgniter,因为它不遵循相同的规则(不允许使用某些有效地址):
/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix
Run Code Online (Sandbox Code Playgroud)
我想使用PHP中Javascript regex设置的相同规则。
我的前端代码说这种电子邮件地址是可以的,然后Codeigniter说不是这样的情况,这当然是我要在应用程序中解决的问题。
感谢您的所有提示!:D