2016-02-05 116 views
0

當我使用以下代碼:爲什麼一個空結果會凍結腳本以及如何避免它?

if(string.match(/td>0/g).length == 8) { 
    /*Do something*/ 
} 

和沒有/td>0/是匹配的,它返回一個null結果,防止下面的腳本的執行。

我想知道爲什麼代碼是凍結的,以及如何避免它,並找到一個解決方案或替代.match()

+3

或'如果((string.match(/ TD> 0 /克)|| [])。length === 8)',另外,控制檯可以用F12 – adeneo

+0

Thks打開所有你的答案和如此快速的迴應:) –

回答

1

試試這個(以上推薦):

var matching=string.match(/td>0/g); 
if(matching != null && matching.length === 8) { 
    /*Do something*/ 
} 

使用===而不是==

+1

這個答案可以改進,所以你沒有運行正則表達式檢查兩次。但是如果你喜歡代碼運行兩次,這是你的答案。 – epascarello

2

你可以簡單地先添加一個null檢查 -

if(string.match(/td>0/g) != null && string.match(/td>0/g).length == 8) { 
    /*Do something*/ 
} 
1

您將需要在檢查長度之前進行空檢查。我會做任一第一執行匹配和比檢查

var result = string.match(/td>0/g); 
if (result && result.length) {} 

或使用或趕上空

if((string.match(/td>0/g)||"").length) {} 
相關問題