2014-12-03 20 views
0

我想檢查一個string是否包含幾個符號中的任何一個,包括'$'

'abc'.search('$') //return 3 
''.search('$')  //return 0 

我想知道爲什麼發生這種情況

+1

'String.prototype.search'使用正則表達式:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/search - 我認爲你正在尋找'String.prototype.indexOf' – m90 2014-12-03 08:29:54

+0

$匹配字符串的末尾,並且搜索返回匹配的位置 – dandavis 2014-12-03 08:30:52

回答

4

MDN:但string.prototype.search()方法尋找'$'

例如,當返回最後一個字符指數+ 1

正則表達式
可選。一個正則表達式對象。如果傳遞非RegExp對象obj,則通過使用new RegExp(obj)將其隱式轉換爲RegExp

所以你調用等效於:

'abc'.search(/$/); 

$正則表達式的字符串的結尾相匹配。如果您希望禁用的特殊意義,你需要逃避它:

'abc'.search('\\$') 

需要兩個\字符:第一轉義字符串中的反斜槓文字,這則逃脫的正則表達式的美元符號。或者,你可以寫:

'abc'.search(/\$/) 
相關問題