我正在尝试构建一个简单的页面,它将在行中的第一个引号之前删除文本,并在textarea中的一行中删除最后一个引号(包括最终引号)之后的文本。
This问题非常有帮助,让我看到以下代码:
$('#desqlize').on('click', function(){
var lines = $('textarea').val().split('\n');
var total = ""
$.each(lines, function(){
var enteredText = String(this);
var m = enteredText.match(/"(.*?)"/);
total = total + m[1] +'\n'
})
$('textarea').val(total);
});
但是,如果textarea中的文本在该行中有引号,例如下面列出的文本,它也会删除这些引用中的文本。
cmd2.CommandText = cmd2.CommandText & "AND b.ColumnID IN ("&"'"&REPLACE(level2Array(1,0), ",", "','" )&"'"&") "
有人会像上面那样粘贴一行线,我基本上想要从cmd2中删除所有内容,直到第一个引号,然后删除每一行的最终引号。我希望保留这两个引号中的所有内容。
提前感谢您的帮助。
答案 0 :(得分:4)
这适用于输入中有引号的所有情况:
var parsed = $('textarea').val().replace(/^[^"]*"(.*)"[^"]*$/, '$1');
或没有正则表达式:
var ta = $('textarea').val();
var parsed = ta.substring(ta.indexOf('"') + 1, ta.lastIndexOf('"'));
将上述代码置于上下文中:
$('#desqlize').on('click', function(){
var lines = $('textarea').val().split('\n');
var total = ""
$.each(lines, function(){
var enteredText = String(this);
total = total + enteredText.replace(/^[^"]*"(.*)"[^"]*$/, '$1') + '\n';
// or, alternatively:
// total = total + enteredText.substring(enteredText.indexOf('"') + 1, enteredText.lastIndexOf('"'));
})
$('textarea').val(total);
});