2013-08-29 13 views
0

我想構建一個簡單的頁面,將刪除一行中的第一個引號和最後一個報價後的文本(包括最後一個報價)之前的文本在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,直到第一引號然後取出最終引號爲每一行。這兩個引號中的所有內容我都想保留。

在此先感謝您的幫助。

+1

我不知道我得到它,但如何對剛剛報價分裂,和pop()「荷蘭國際集團關底和shift()」荷蘭國際集團關閉開始? – adeneo

+0

如果我理解你說的話,我覺得這是我目前的方法做什麼。如果我分裂的任何報價,它會從線的中間爆開的文字,我只是想去掉的前端和末端。 – Aarmora

+0

要刪除所有文字直至幷包括第一個'「'?和'結束」'? – hwnd

回答

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

完美工作。謝謝! – Aarmora

相關問題