javascript - JSON中的正则表达式模式?

标签 javascript php regex json

我正在尝试使用单个 JSON 文件来验证前面(JS)和后面(PHP)的数据。
我不知道如何将我的模式放在 json 字符串中,PHP 不会转换它。
这是我想使用的(电子邮件验证):

'{"name":"email", "pattern":"^[a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,15})$"}'

我想模式中有一些东西不会被视为字符串?照原样,不会转换为 PHP 中的对象。我不应该逃避任何事情,但我可能错了......

谢谢

编辑:按照评论中的建议尝试了这个:
json_decode('{"name":"email", "pattern":"^[a-z0-9]+(\\.[_a-z0-9]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,15})$"}‌​');  ==> NULL

最佳答案

问题是反斜杠 \ .使用两个来表示有一个并且它会很好地工作:

{"name":"email","pattern":"^[a-z0-9]+(\\.[_a-z0-9]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,15})$"}

以上是有效的 JSON,但作为 PHP 字符串会引起问题,因为 \\已经被解释为一个 \在传递给 json_decode() 之前,我们又回到了起点。如deceze请在评论中指出,这可以通过添加四个反斜杠来解决:
{"name":"email","pattern":"^[a-z0-9]+(\\\\.[_a-z0-9]+)*@[a-z0-9-]+(\\\\.[a-z0-9-]+)*(\\\\.[a-z]{2,15})$"}

或者通过立即传递 file_get_contents() 中的内容(或类似)到json_decode() .

关于javascript - JSON中的正则表达式模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25426464/

相关文章:

php - php中的测试数据

php - 为什么我的ajax没有提交?

用于匹配来自记录器的异常堆栈跟踪的 Java 正则表达式

python - 拆分字符串而不删除分隔符,但抑制空捕获组

javascript - 使用特定于区域设置的设置格式化数字

javascript - Html css 重叠 div

javascript - JavaScript [] 是如何工作的?

PHP fsockopen() cookie

javascript - Font-Awesome 图标不改变颜色 React

javascript正则表达式用分号分隔,除了&