我有一個if語句,如果某個變量沒有其中的<br/>
元素,我想執行它。你會如何做到這一點?如何在if語句中的javascript中使用搜索方法?
我試圖
var str = "hello<br/>goodbye";
if(str.search("<br/>") == false) {
//execute certain code
}
但這並沒有工作。
我有一個if語句,如果某個變量沒有其中的<br/>
元素,我想執行它。你會如何做到這一點?如何在if語句中的javascript中使用搜索方法?
我試圖
var str = "hello<br/>goodbye";
if(str.search("<br/>") == false) {
//execute certain code
}
但這並沒有工作。
search()函數返回在(如果有的話)找到匹配的位置。如果找不到匹配,則返回-1。所以你想要
var str = "hello";
if(str.search("e") <0) { //no match
//execute certain code
}
另外請注意,搜索參數是一個正則表達式;當您嘗試搜索可能變得相關的HTML標記時。
好的,那麼如果我試圖搜索
元素呢? –
chromedude
2010-10-25 20:31:10
它的工作方式完全相同。它只是返回s作爲參數傳入的字符串中的起始位置。相同的代碼應該可以工作。 – JohnFx 2010-10-25 20:34:36
你應該只能把''
''放在你當前有「e」的地方,但是如果你想匹配'「
」'或'「,你可能想要使用更復雜的正則表達式style ='clear:all'/>「'等等。 –
2010-10-25 20:42:59
search
函數返回一個索引。這將是>=0
如果值被發現
if (str.search("e") >= 0) {
// the string matches
}
search
文檔
你原來的問題,雖然提到確定的值不具有<br/>
元素在裏面。你能否在這一點上更具體些?尤其值是什麼:DOM元素,字符串等...
您可以使用正則表達式也:
if (/e/.test(str)) {
...
}
很諷刺的是,當你的帖子在這種情況下比* search()*更合適時,你的帖子被拒絕投票。 * test()*的工作方式與* search()*的工作方式類似,只不過它爲匹配成功的匹配返回一個布爾值,而不是匹配的子字符串的位置。 +1來平衡它。 – 2010-10-25 20:50:08
不要傳遞一個字符串字面作爲搜索()的說法。任何傳遞給search()的非正則表達式都將用於創建正則表達式,其中的任何「特殊」字符將失去它們的字面含義。例如:
"Hello. Goodbye".search(".")
將返回0
,不5
其中.
字符。這是因爲.
在正則表達式中有特殊含義,並且會匹配除換行符之外的任何字符。
實際需要的indexOf()方法,產生正是同樣的事情,而是需要一個字符串作爲參數,並返回字符串匹配的字符串中的位置:
var str = "hello<br/>goodbye";
if(str.indexOf("<br/>") == -1) { // String not found
//execute certain code
}
var str =「hello」; – zerodin 2010-10-25 20:26:09
@deepsat良好的捕獲。固定。 – chromedude 2010-10-25 20:31:49