indexOf在javascript中没有获得准确的值
我正在检查数组的特定值是否存在于字符串中。为此,我实现了以下代码indexOf在javascript中没有获得准确的值,javascript,Javascript,我正在检查数组的特定值是否存在于字符串中。为此,我实现了以下代码 function Check() { var Value = 'I III'; var Opt = new Array("I", "II", "III", "IV"); for (var i = 0; i < Opt.length; i++) { if (Value.indexOf(Opt[i]) > -1) { a
function Check() {
var Value = 'I III';
var Opt = new Array("I", "II", "III", "IV");
for (var i = 0; i < Opt.length; i++) {
if (Value.indexOf(Opt[i]) > -1) {
alert("Hello");
}
}
}
函数检查(){
var值='I III';
var Opt=新数组(“I”、“II”、“III”、“IV”);
对于(变量i=0;i-1){
警惕(“你好”);
}
}
}
如果字符串中存在值,它应该显示一个警报,但问题是它显示警报3次而不是2次,因为indexOf假设II是字符串的一部分,因为III存在于字符串中。解决此问题的最简单方法是使用分隔符(例如,在每个空格处)拆分
值
var值='I III'。拆分(“”)
var期权=['I'、'II'、'III'、'IV']
options.forEach(函数(选项){
var index=value.indexOf(选项)
如果(索引!=-1){
//一般不要使用“document.write”;它在堆栈片段中非常有用
document.write(索引+':'+值[索引])
文档。写入(“
”)
}
})
这是获取ans的另一种方法
函数检查(){
var值='I III'。拆分(“”);var Opt=[“I”、“II”、“III”、“IV”];
对于(变量i=0;i-1){
警惕(“你好”);
}
}
}检查();
可以将值按空格分割,然后计算数组的差值。结果将是在字符串中找不到项。它应发出3次警报,但发出2次警报是不正确的。因为“II”
确实在字符串中“III”
。II存在于字符串中。因此,给定字符串中有三个匹配项。可以使用正则表达式获得精确匹配项。
var Value = 'I III'.split(" "); var Opt = ["I", "II", "III", "IV"];
for (var i = 0; i < Opt.length; i++) {
if (Value.indexOf(Opt[i]) > -1) {
alert("Hello");
}
}
}Check();