Answers:
IndexOf()-它接受字符串文字或字符串对象,但不接受正则表达式。它还接受一个从零开始的整数值,以从以下位置开始搜索:
Search()-接受字符串文字或字符串对象以及正则表达式。但是它不接受索引来开始搜索。
"baby/e/lephant".indexOf(m);
什么?
indexOf()和search()
两者共同
i)返回第一次出现的搜索值
ii)如果找不到匹配项,则返回-1
let str='Book is booked for delivery'
str.indexOf('b') // returns position 8
str.search('b') // returns position 8
indexOf()中的特殊
i)您可以将起始搜索位置作为第二个参数
str.indexOf('k') // 3
str.indexOf('k',4) // 11 (it start search from 4th position)
搜索值可以是正则表达式
str.search('book') // 8
str.search(/book/i) // 0 ( /i =case-insensitive (Book == book)
没有正则表达式,indexOf和search之间没有实际区别。
以下示例提供了一个实时演示:
function FromSearch() {
var str = document.getElementById("demo").innerText;
var n = str.search("difference");
document.getElementById("Location").innerHTML = n;
}
function FromindexOf() {
var str = document.getElementById("demo").innerText;
var n = str.indexOf("difference");
document.getElementById("Location").innerHTML = n;
}
<p id="demo">Without a <a href='http://www.w3schools.com/js/js_regexp.asp'>regex</a>, there is no practical difference between <a href='http://www.w3schools.com/jsref/jsref_indexof.asp'>indexOf</a> and <a href='http://www.w3schools.com/jsref/jsref_search.asp'>search</a>
</p>
<button onclick="FromSearch()">From search</button>
<button onclick="FromindexOf()">From indexOf</button>
<p>Location of difference in the above sentence is:</p>
<mark id="Location"></mark>
search
将字符串转换为RegExp
,例如,str.search("d........e");
也将与字符39匹配