我正在尝试使用reg ex修复内联javascript片段,以便在输入字段上重写。
我有单引号包含内部双引号,我想将内部引号转换为单引号而不是双引号,但我只想在代码显示为嵌套引号时转换它们。
现在我正在为报价的所有实例进行转换,但我可能遇到另一个问题。我将在下面附上我的代码。
的JavaScript
$(document).ready(function() {
$('.submit').bind('click', function(e) {
var yourstring = $("textarea").val();
yourstring = yourstring.replace(/'/g, "''");
yourstring = yourstring.replace(/"e;/g, "\"");
yourstring = yourstring.replace(/&lquote;/g, "\"");
yourstring = yourstring.replace(/&rquote;/g, "\"");
yourstring = yourstring.replace(/"/g, "\"");
yourstring = yourstring.replace(/“/g, "\"");
yourstring = yourstring.replace(/”/g, "\"");
yourstring = yourstring.replace(/"/g, "\"");
alert(yourstring)
});
});
HTML
<textarea style="width:400px;height:300px;">
function('');
<a onclick="$(".text").append('test');">Click Me</a>
<br/>
&lquote;test quotes&rquote;
" generic quotes "
</textarea>
<input type="submit" class="submit">
更具体地说,我正试图获得
<a onclick="$(".text").append('test');">Click Me</a>
看起来像
<a onclick="$('.text').append('test');">Click Me</a>
答案 0 :(得分:0)
提供的示例似乎与数据库无关,但onclick
属性中的JavaScript代码存在问题。该代码实际上没有有效的语法,但我的猜测是你正在尝试为HTML代码构建某种编辑器。
如果您决定不遵循上述评论中的建议(我同意),为了回答您的问题,可以选择删除已被其包围的文字的双引号:
var s = "<a onclick=\"$(\".text\").append('test');\">Click Me</a>";
var re = /"(.*)"/g;
var r = s.replace(re, function($0, $1) { return '"' + $1.replace(/"/g, "''") + '"'; });
console.log(r);