为了说明我想做什么,我将以示例代码为例:
<html>
<head>
</head>
<body>
<script type="text/javascript">
function oc(a)
{
var o = {};
for(var i=0;i<a.length;i++)
{
o[a[i]]='';
}
return o;
}
if ( "Island" in oc(["Hello","Hello World","Have","Island"]) )
{
document.write("Yes");
}
</script>
</body>
</html>
在这种情况下,我的页面上会显示Yes
,但如果我更改了条件:
if(oc中的“Isl”([“Hello”,“Hello World”,“Have”,“Island”]))
该功能找不到匹配项。执行此类检查的最佳方法是什么,即使只有部分字符串匹配,它也会返回true?
由于
Leron
答案 0 :(得分:4)
使用.indexOf()
:
var str = 'hello world'
if (str.indexOf('lo') >= 0) {
alert('jippy');
}
indexOf()
返回找到值的位置。如果没有匹配则返回-1
,因此我们需要检查结果是否大于或等于0
。
答案 1 :(得分:1)
您可以使用正则表达式中的.test方法。
var pattern = /Isl/;
pattern.test("Island"); // true
pattern.test("asdf"); //false
答案 2 :(得分:0)
var s = "helloo";
alert(s.indexOf("oo") != -1);
indexOf返回另一个字符串中字符串的位置。如果未找到,则返回-1。
https://developer.mozilla.org/en/Core%5FJavaScript%5F1.5%5FReference/Objects/String/indexOf
答案 3 :(得分:0)
<html>
<head>
</head>
<body>
<script type="text/javascript">
function inArray(str, array)
{
for(var i=0; i<array.length; i++)
{
if (array[i].indexOf(str) >= 0)
return true;
}
return false;
}
if ( inArray("Island", ["Hello","Hello World","Have","Island"] )
{
document.write("Yes");
}
</script>
</body>
</html>