當我使用以下代碼:爲什麼一個空結果會凍結腳本以及如何避免它?
if(string.match(/td>0/g).length == 8) {
/*Do something*/
}
和沒有/td>0/
是匹配的,它返回一個null
結果,防止下面的腳本的執行。
我想知道爲什麼代碼是凍結的,以及如何避免它,並找到一個解決方案或替代.match()
?
當我使用以下代碼:爲什麼一個空結果會凍結腳本以及如何避免它?
if(string.match(/td>0/g).length == 8) {
/*Do something*/
}
和沒有/td>0/
是匹配的,它返回一個null
結果,防止下面的腳本的執行。
我想知道爲什麼代碼是凍結的,以及如何避免它,並找到一個解決方案或替代.match()
?
試試這個(以上推薦):
var matching=string.match(/td>0/g);
if(matching != null && matching.length === 8) {
/*Do something*/
}
使用===
而不是==
。
這個答案可以改進,所以你沒有運行正則表達式檢查兩次。但是如果你喜歡代碼運行兩次,這是你的答案。 – epascarello
你可以簡單地先添加一個null
檢查 -
if(string.match(/td>0/g) != null && string.match(/td>0/g).length == 8) {
/*Do something*/
}
您將需要在檢查長度之前進行空檢查。我會做任一第一執行匹配和比檢查
var result = string.match(/td>0/g);
if (result && result.length) {}
或使用或趕上空
if((string.match(/td>0/g)||"").length) {}
或'如果((string.match(/ TD> 0 /克)|| [])。length === 8)',另外,控制檯可以用F12 – adeneo
Thks打開所有你的答案和如此快速的迴應:) –