你如何在if语句中使用javascript中的搜索方法?

时间:2010-10-25 20:23:22

标签: javascript

如果某个变量中没有<br/>元素,我有一个if语句要执行。你会怎么做?

我试过

var str = "hello<br/>goodbye";
if( str.search("<br/>") == false) {
//execute certain code
}

但这不起作用。

4 个答案:

答案 0 :(得分:4)

您也可以使用正则表达式:

if (/e/.test(str)) {
    ...
}

答案 1 :(得分:3)

search()函数返回找到匹配的位置(如果有)。如果未找到匹配项,则返回-1。所以你想要

var str = "hello";
if( str.search("e") <0) { //no match
//execute certain code
}

另请注意,搜索参数是正则表达式;当您尝试搜索可能相关的HTML标记时。

答案 2 :(得分:1)

不要将字符串文字作为 search()的参数传递。传递给 search()的任何非正则表达式都将用于创建正则表达式,其中的任何“特殊”字符将失去其字面含义。例如:

"Hello. Goodbye".search(".")

将返回0,而不是5字符所在的.。这是因为.在正则表达式中具有特殊含义,并且将匹配除换行符之外的任何字符。

你实际上需要indexOf()方法,该方法完全相同但接受一个字符串作为其参数,并返回字符串中子字符串匹配的位置:

var str = "hello<br/>goodbye";
if(str.indexOf("<br/>") == -1) { // String not found
    //execute certain code
}

MDC documentation for search上的更多信息。

答案 3 :(得分:0)

search函数返回一个索引。如果找到值,则为>=0

if ( str.search("e") >= 0 ) { 
  // the string matches
}

search文档

您的原始问题虽然提到确定该值中是否没有<br/>元素。关于这一点,你能更具体一点吗?特别是什么是值:DOM元素,字符串等......