【发布时间】:2014-02-23 11:07:23
【问题描述】:
我需要一个用于正则表达式的 json 字符串。老实说,我对所有的转义有点困惑.. :)
我想用正则表达式替换“\o/”。源字符串应该是 JSON。
这是没有转义的 JSON 字符串:
var emoticons=...
+ '{"img": "party.png","short": "\o/"},'
...
我尝试转义斜杠和反斜杠以满足正则表达式的需要,但之后无法再解析 JSON:
var emoticons=...
+ '{"img": "party.png","short": "\\o\/"},'
...
JSON-String 应该是什么样子?
代码:
var smilies = JSON.parse(emoticons);
text.replace(new RegExp(smilies.short,......);
【问题讨论】:
-
您可能不应该将正则表达式应用于整个 json 字符串;解析 json,找到您想要的变量,然后才将正则表达式应用于实际字符串;让您的 json 序列化程序完成剩下的工作。
-
我做到了。这只是关于“短”属性
-
@DeanTaylor 不。转义正则表达式不是“只是”,而是 regex/json 组合(“双重转义”)
-
@OleAlbers 是字符串,是JSON没关系,除了转义的输入是JSON字符串,最终只是转义到RegEx的字符串。
标签: javascript regex json