2015-08-31 33 views
0

我目前正在寫一個函數,它將檢查textarea中每行的值,並將結果輸出到另一個textarea中。textarea中空白行的值是多少?

現在我的問題是,我不知道文本區域中的空白行的值,我試過「」,/ \ W /,undefined和null,並且這些都不起作用。這就是我現在所擁有的:

function check(){ 
      var textAreaValue= $("textarea#minCheck").val(); 
      var valueArray= $("textarea#minCheck").val().split("\n"); 
      var parsedArray=[]; 

      for(i=0; i<valueArray.length;i++){ 
       if(valueArray[i]==/\W/){ 
        parsedArray.push(valueArray[i] + "|blank"); 
       }else if(valueArray[i]>=0 && valueArray[i]<=999){ 
        parsedArray.push(valueArray[i] + "|" + "brand1"); 
       }else if(valueArray[i]>=1000 && valueArray[i]<=1999){ 
        parsedArray.push(valueArray[i] + "|" + "brand2"); 
       }else if(valueArray[i]>=2000 && valueArray[i]<=2999){ 
        parsedArray.push(valueArray[i] + "|" + "brand3"); 
       }else if(valueArray[i]>=3000 && valueArray[i]<=3999){ 
        parsedArray.push(valueArray[i] + "|" + "brand4"); 
       }else{ 
        parsedArray.push(valueArray[i]+"|invalid"); 
       } 
      } 

      $("textarea#minParsed").val(parsedArray.join("\n")); 
     } 

現在,當空白行被選中時,它會給我「| brand1」。

+1

'valueArray [I] ==/\ W /'不會檢查是否valueArray的'內容[I]'匹配regexp'/ \ W /'。它會比較這兩個對象,但是因爲'valueArray [i]'將是一個字符串,'/ \ W /'和'RegExp'這將永遠不會成立。您需要使用RegExp的[test()](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test)函數。 –

回答

1

試試這個:修剪線的價值,並與空的空間if(valueArray[i].trim()==""){檢查,看看下面的代碼

 function check(){ 
     var textAreaValue= $("textarea#minCheck").val(); 
     var valueArray= $("textarea#minCheck").val().split("\n"); 
     var parsedArray=[]; 

     for(i=0; i<valueArray.length;i++){ 
      if(valueArray[i].trim()==""){ 
       parsedArray.push(valueArray[i] + "|blank"); 
      }else if(valueArray[i]>=0 && valueArray[i]<=999){ 
       parsedArray.push(valueArray[i] + "|" + "brand1"); 
      }else if(valueArray[i]>=1000 && valueArray[i]<=1999){ 
       parsedArray.push(valueArray[i] + "|" + "brand2"); 
      }else if(valueArray[i]>=2000 && valueArray[i]<=2999){ 
       parsedArray.push(valueArray[i] + "|" + "brand3"); 
      }else if(valueArray[i]>=3000 && valueArray[i]<=3999){ 
       parsedArray.push(valueArray[i] + "|" + "brand4"); 
      }else{ 
       parsedArray.push(valueArray[i]+"|invalid"); 
      } 
     } 

     $("textarea#minParsed").val(parsedArray.join("\n")); 
    } 
1

您可以使用此正則表達式檢查空行:/^\ S * \ N /克和Mac行結束使用:/^\ s * [\ r \ n]/gm

+1

'[\ r \ n]'沒有錯,只是解釋。 OS X和Linux的行尾是'\ n'。在Windows上它是'\ r'。只有OS X之前的MacOS是'\ r \ n',但是'[\ r \ n]'不符合那些,因爲'[\ r \ n]'是'\ r'或'\ n'。 –

1

似乎您正嘗試使用正則表達式元字符(\W),而無需Regexp調用。

的文字值可能是\r\n(CR + LF),所以如果你劈在\n你留下了\r

嘗試拆分對\r\n然後檢查空字符串""

HTML5標準實際上改變一些與此相關的事情,雖然我不知道它在實際的瀏覽器實現中有什麼實際影響。我認爲HTML5標準說客戶端API可以看到任何組合(CR,LF或CR + LF),因爲用戶可以編輯內容。

一個更好的答案就在這裏描述的情景:

https://stackoverflow.com/a/14217315/257090