javascript - 在 JavaScript 中使用 $1 作为变量

标签 javascript escaping pattern-matching

我正在尝试解析从文件加载的可自定义文本 block 。稍微简化一下,比方说,我正在尝试将大括号内出现的每个文本 block 转换为您可以单击以使用上述文本进行 javascript 警报的内容。

问题是,将 $1 传递到警报中。 $1 不像变量那样发挥作用。无论如何,一切都开始正常了:

var text='Information here: {Thanks for clicking the info link}';
text=text.replace(/{(.+)}/g,'[<span onclick=\"alert(\\'\$1\\')\">click me</span>]');
document.write(text);

到目前为止,一切都很好。我单击显示“[单击我]”的位置,然后消息“感谢您单击信息链接”作为 JavaScript 警报出现。

但有时我想将带有“或'的消息放入大括号中。

var text='Information here: {Thanks for clicking the "info" link}';
text=text.replace(/{(.+)}/g,'[<span onclick=\"alert(\\'\$1\\')\">click me</span>]');
document.write(text);

根本无法发出警报。如果我“查看选择源”,它会给出:

Information here: [<span onclick="alert('Thanks for clicking the " info"="" link')"="">click me</span>]

我尝试了各种转义“标记的组合,但没有任何乐趣。

我想用“替换”,但$1不是变量!

有什么想法吗?是的,我确实想这样做! :-)

谢谢!

最佳答案

使用单个 \ 转义 ',尽管不需要在单引号字符串内转义 "

var text='Information here: {Thanks for clicking the info link}';
text=text.replace(/{(.+)}/g,'[<span onclick="alert(\'$1\')">click me</span>]');
document.write(text);

关于javascript - 在 JavaScript 中使用 $1 作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39415705/

相关文章:

r - 识别 R 中的模式,相应地计算和分配值

matlab - 如何使用第一列作为索引从单个矩阵创建矩阵数组?

javascript - Onclick 可以正常工作,但是 onload 会出问题吗?

javascript - Facebook 评论插件字体颜色

javascript - 在 PHP 中获取 HTML 和 JavaScript 代码的结果

escaping - 是否应转义JSON-LD字符串?

haskell - 我可以在 Haskell 中匹配数据构造函数通配符吗?

javascript - MongoDB:单个数据库处理程序的 >5 个打开连接

php - 转义表名 MySQL

php - 使用 PHP 转义包含变量的 MySQL 查询