我有以下功能:
var checkCode=function(codeString){
var ifs=codeString.split("if");
...
}
有没有办法检查代码是否失败,因为在输入到函数的if
中找不到要分割的任何codeString
字符串?
答案 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。