检查Javascript .split()是否失败

时间:2013-12-14 01:45:27

标签: javascript split

我有以下功能:

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

有没有办法检查代码是否失败,因为在输入到函数的if中找不到要分割的任何codeString字符串?

7 个答案:

答案 0 :(得分:6)

如果结果的长度为1,则拆分不会拆分。

答案 1 :(得分:3)

它将返回一个数组,其中整个字符串作为唯一的条目。

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

答案 2 :(得分: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

答案 3 :(得分: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);

答案 4 :(得分:0)

您可以尝试includes的{​​{1}}方法。就像下面的例子一样。

String.prototype

如果字符串包含指定的字符,则返回var your_var = codeString.includes("if");//return true or false ,否则返回true。根据{{​​1}}或false,如果您想要true字符串,您可以做出决定。

答案 5 :(得分:0)

旧话题,但可能会对某人有所帮助。

我会试一试

let ifs: string;
try {
  ifs = codeString.split("if");
} catch {
  // the code fails
}

在函数内部

var checkCode = function(codeString): string{
  try {
    return codeString.split("if");
  } catch {
    return null;
  }
}

答案 6 :(得分:0)

使用 ES6 解构:

  const canSplit = (input = '', delimiter) => {
    const [, second] = input.split(delimiter) || ''
    return second !== undefined
  }

起初,我只想使用return !!second,但随后canSplit("abc-", '-')将返回false。