Javascript 查找行的第一个引号和最后一个引号之间的文本

Javascript 查找行的第一个引号和最后一个引号之间的文本,javascript,jquery,regex,Javascript,Jquery,Regex,我正在尝试构建一个简单的页面,该页面将删除一行中第一个引号之前的文本以及textarea中一行中最后一个引号(包括最后一个引号)之后的文本 这个问题非常有帮助,让我了解了以下代码: $('#desqlize').on('click', function(){ var lines = $('textarea').val().split('\n'); var total = "" $.each(lines, function(){

我正在尝试构建一个简单的页面,该页面将删除一行中第一个引号之前的文本以及textarea中一行中最后一个引号(包括最后一个引号)之后的文本

这个问题非常有帮助,让我了解了以下代码:

    $('#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);   
    });
但是,如果文本区域中的文本在行内有引号,例如下面列出的文本,它也会删除这些引号内的文本

cmd2.CommandText = cmd2.CommandText & "AND b.ColumnID IN     ("&"'"&REPLACE(level2Array(1,0), ",", "','" )&"'"&") "
有人会像上面那样粘贴一个行块,我基本上希望删除cmd2中的所有内容,直到第一个引号,然后删除每行的最后一个引号。我想保留这两个引号内的所有内容


提前感谢您的帮助

这适用于输入中有引号的所有情况:

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);
});

这适用于输入中有引号的所有情况:

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);
});

我不确定我是否明白,但我们还是用引号分开,然后在结尾处弹出(),在开始处按下shift(),怎么样?如果我理解你的意思,我想这就是我目前的方法。如果我在任何引号上拆分,它将从行中间弹出文本,而我只想删除前面和结尾。您想删除第一个
”和结尾
?@hwnd Yes之前的所有文本。正是这样。结尾的
和它后面的所有内容都在那一行。我不确定我是否理解它,但是在引号上拆分,然后在结尾和shift()上弹出()'取消开头?如果我理解你的意思,我认为我当前的方法就是这么做的。如果我在任何引号上拆分,它将从行中间弹出文本,而我只想删除前面和结尾。是否要删除第一个
”之前的所有文本?还有结尾
?@hwnd是的。就是这样。结尾
和它之后的所有内容都在那一行。非常有效。谢谢工作得很好。谢谢