以下是两种具有不同检查条件的条件:
案例1:
if(plan_name.indexOf("T1")>=0 && plan_name.indexOf("FLEX")>=0 && plan_name.indexOf("Non-VAE")>=0) {
//do something
}
后跟(在相同的代码/程序中)
案例2:
if(plan_name.indexOf("T1")>=0 && plan_name.indexOf("Non-FLEX")>=0 && plan_name.indexOf("Non-VAE")>=0){
//do something
}
以下是适用上述条件的输入:
计划名称 = iOS 7.7 - RC - T1 - Non-FLEX, Non-VAE
每次CASE 1中的第一个if
条件变为有效时,在我的代码中,因为indexOf()正在检测子字符串,而不是我想要代码检测的actual specific
字符串(即CASE 2)应该是有效的)。如何在JS中进行这样的特定字符串匹配?
答案 0 :(得分:1)
一个解决方案是拆分它,看看字符串是否匹配数组
var str = "iOS 7.7 - RC - T1 - Non-FLEX, Non-VAE";
var parts = str.split(/[\s,]/g);
console.log("FLEX", parts.indexOf("FLEX")!==-1);
console.log("Non-FLEX", parts.indexOf("Non-FLEX")!==-1);
答案 1 :(得分:0)
一种选择是重新排序执行流程:
<input type="button" name="submit" value="Submit" onclick="calculateMe()"/>
<img src="~/images/plus.png" alt="operator" id= "operator" onclick="changeIcon()">
由于第一个条件比第二个条件更严格,第二个条件只会检查第一个条件是否为真。
但是,这只有在没有其他选项的情况下才有效,因为如果你还要查看if(plan_name.indexOf("T1")>=0 &&
plan_name.indexOf("Non-FLEX")>=0 &&
plan_name.indexOf("Non-VAE")>=0){
...
} else if(plan_name.indexOf("T1")>=0 &&
plan_name.indexOf("FLEX")>=0 &&
plan_name.indexOf("Non-VAE")>=0) {
...
}
和'VAE'
,那么也许你应该&#34;标记化&#34;字符串:因为看起来令牌被空格分隔,你可以拆分它,然后查看你需要的每个标记的结果数组。
第三个选项,仍假设令牌用空格分隔,为匹配器添加一个空格:而不是&#39; FLEX&#39;寻找'Non-VAE'
和' FLEX'
答案 2 :(得分:0)
你的支票应该是这样的
plan_name.indexOf("T1")>=-1
不是这个
plan_name.indexOf("T1")>=0