字符串比较不起作用

时间:2016-03-17 07:46:20

标签: javascript string

为什么我每次都不匹配.. 这段代码有什么问题

var CourseDesc = 'Master of Computer Application'

var str = CourseDesc.split(" ");
alert(str[0]);
var str2 = 'Master';

if(str == str2){
    alert("Matched");
}else{
    alert("Not Matched");
}

有人面对这个吗?

3 个答案:

答案 0 :(得分:1)

String.Split方法返回包含子字符串的数组。 因此,您的str变量是一个数组而不是一个字符串。

<强> if(str[0] == str2)

var CourseDesc = 'Master of Computer Application'

var str = CourseDesc.split(" ");
alert(str[0]);
var str2 = 'Master';

if(str[0] == str2){
    alert("Matched");
}else{
    alert("Not Matched");
}

JSFiddle

答案 1 :(得分:-2)

从问题中不清楚OP是否只对匹配主字符串中的第一个单词感兴趣,但是,如果您只想知道关键字(str2)是否在分割结果中的任何位置第一个字符串(正如已经指出的那样,是一个数组),你可以只查找一个索引。

或者,如演示中的第二个代码块所示,您可以在不拆分的情况下匹配原始字符串:

var CourseDesc = 'Master of Computer Application'

var str = CourseDesc.split(" ");
var str2 = 'Master';

if (str.indexOf(str2) != -1) {
  alert("Matched");
} else {
  alert("Not Matched");
}

var str3 = 'Master of Computer Application';
var str4 = 'Master';

if (str3.match(str4)) {
  console.log("Matched");
} else {
  console.log("Not Matched");
}

答案 2 :(得分:-2)

var CourseDesc = 'Master of Computer Application'

var str = CourseDesc.split(" ");
alert(str[0]);
var str2 = 'Master';

if(str == str2){ 
 alert("Matched");
}else{
 alert("Not Matched");
}
如果你想将CourseDesc与你可以尝试for循环的任何关键字匹配,那么

str就是数组

var CourseDesc = 'Master of Computer Application'

var str = CourseDesc.split(" ");

var str2 = 'Master';

for(var i=0 ;i<str.length; i++){
  alert(str[i]);
   if(str[i] == str2){ 
     alert("Matched");
   }else{
     alert("Not Matched");
   }
}