2013-12-14 119 views
2

我有以下功能:檢查是否使用Javascript .split()失敗

var checkCode=function(codeString){ 
    var ifs=codeString.split("if"); 
    ... 
} 

有沒有一種方法來檢查代碼失敗,在沒有找到任何if字符串從codeString拆分輸入到該功能?

+0

如果'if'不包含'ifs'的長度將是1 – megawac

回答

4

如果結果的長度爲1,則拆分不會拆分。

+1

我很難想出一個押韻去與這個答案。 – Pointy

+3

如果分割的長度爲1,則分割從未完成@Pointy。 – zchbrntmr

+0

@zchbrntmr ha good one :) – Pointy

3

它將以整個字符串作爲唯一條目返回一個數組。

if(codeString === ifs[0]) //nothing was split 
1

試試這個:

var checkCode=function(codeString){ 
     var ifs = codeString.split("if"); 
     if(ifs.length == 1){ alert('no split'); } 
     else{ alert('splitted'); } 
     return ifs; 
    } 
var str = "dfsdfif"; 
checkCode(str); 
2

它看起來像所有你想要的是檢查功能拆分並返回動作的布爾狀態。如果是的話,這裏有一個簡單的檢查:

var canSplit = function(str, token){ 
    return (str || '').split(token).length > 1;   
} 

和使用方法如下:

canSplit('test if this works', 'if'); // returns true 

canSplit('test that this fails', 'if'); // returns false 
+1

在這種情況下,您可以使用'indexOf'來替代分割字符串,這可能會更快一點。 –

+0

@FelixKling,同意!因爲這個案例是在.split()周圍的。表演將是一個不同的話題,但我同意indexOf是更快。 – SimoAmi

0

您可以嘗試的String.prototypeincludes方法。就像下面的例子。

var your_var = codeString.includes("if");//return true or false 

如果字符串包含指定的字符否則返回false它返回true。根據truefalse,您可以決定是否要split字符串。