怎的在js中判断一个字符串包不包含另外一个字符串
c_a_3();
怎样在js中判断一个字符串包不包含另外一个字符串?
在javascript,有一个string s= 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 ,怎样判断 1 , 2 , 3 在不在这个s中,是不是要先把这个s转换成list,然后用list.contains判断,js里面有java中的这样的方法吗,
谁能帮我写一下判断代码,,
------解决
--------------------------------------------------------
?、在字符串的两边加 ,
?、javascript用indexOf()或则search()与-1比较都可以,记得是-1不是0哟。java可以直接用contains而不用转为list,应为String也有contains方法。
解释下为什么加 , ,主要是为了结果的正确性,比如 abc, de, fgh 中是否包含 bc ,如果仅仅用答案是否定的,但是仅仅用indexOf和search与-1比较都返回true。
再解释下为什么要和-1比较而不是0,字符串下标从0开始,检索不到结果返回-1。
完整事例:
var str = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17
var srcStr = 1 ;
if ((',' + str + ',').search(',' + srcStr +',') -1) {
alert(srcStr + ' is contains in ' + str);
}
为了进一步验证 , 可以将var str = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17
还为var str = 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 然后分别用1楼的方法和我
的方法测试看看结果。
------解决方案--------------------------------------------------------
script type= text/javascript
var s= 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 ;
var c=s.split( , );
var t= 1,2,3,18,22,5 ;
var b=t.split( , );
for(var i=0;i b.length;i++){
var find=0;
for(var j=0;j c.length;j++){
if(b[i]==c[j]){
find=1;
break;
}
}
if(find) alert(b[i]+ 在字符串S中,对应新数组C下标为 +j);
else
alert(b[i]+ 不在字符串S中 );
}
/script