【发布时间】:2013-02-12 01:40:03
【问题描述】:
我正在寻找一个单行正则表达式,它应该将所有双引号转换为括号内的单引号。
例如:
<span onclick="javascript:myfunction("param(s)1", "param(s)2")"
我想把上面的转换成
<span onclick="javascript:myfunction('param(s)1', 'param(s)2')"
我是正则表达式的新手。请帮忙!
【问题讨论】:
-
因为括号可以嵌套,所以不能在正则表达式中这样做。
-
您必须编写自己的解析器。正则表达式只能解析常规语言。处理括号的平衡是不够的。
-
您应该替换或转义它们之前内容被呈现为双引号(
="")。我假设你使用了一些服务器端脚本。 -
OP 应该能够用正则表达式解决这个问题,因为他不关心嵌套,只关心它是否在任何括号内。类似于以下 Perl 表达式的东西,虽然丑陋,但我认为会起作用: s/((.*)\"(.*))/\1'\2/g 。我不知道足够的 JavaScript 将其呈现为实际答案。
-
澄清一下——我并不是说你/应该/以这种方式解决它,我同意@MarcellFülöp 和其他人的观点,即提出这个问题可能意味着你正在走一条道路从长远来看,让你的生活更艰难。但是,从技术上讲,我认为你/可以/。
标签: javascript regex