javascript中indexOf技術(shù)詳解
JavaScript提供了幾種技術(shù),來(lái)在字符串中搜索一個(gè)單詞、數(shù)字或其他的一串字符。搜索可能很方便,例如,如果你想要知道訪問(wèn)者使用哪種Web瀏覽器來(lái)瀏覽你的站點(diǎn)。每個(gè)Web瀏覽器在一個(gè)字符串中標(biāo)識(shí)關(guān)于自己的信息,該字符串包含了很多不同的統(tǒng)計(jì)數(shù)據(jù)。可以通過(guò)在一個(gè)Web頁(yè)面中添加下面這段JavaScript,并且在Web瀏覽器預(yù)覽,從而看到這個(gè)字符串:
<script> alert(navigator.userAgent); </script>
Navigator是一個(gè)Web瀏覽器對(duì)象,并且userAgent是navigator對(duì)象的一個(gè)屬性。userAgent屬性包含了長(zhǎng)長(zhǎng)的一串信息,例如,對(duì)于運(yùn)行在Windows XP上的Internet Explorer 7,其userAgent屬性是:Mozilla/4.0(compatible;MSIE 7.0;Windows NT 5.1)。因此,如果你想看看Web瀏覽器是IE 7的情況,你可以在userAgent字符串中只搜索“MSIE 7”。搜索字符串的方法之一是indexOf()方法。在字符串之后添加一個(gè)句點(diǎn),然后是indexOf(),并且提供你要查找的字符串。基本的結(jié)構(gòu)如下所示:
string.indexOf('string to look for')
indexOf()方法返回一個(gè)數(shù)字:如果沒(méi)有找到搜索字符串,該方法返回-1。因此,如果你想要檢查Internet Explorer,可以這樣做:
var browser=navigator.userAgent;//this is a string if(browser.indexOf('MSIE')!=-1){ //this is Internet Explorer }
在這個(gè)例子中,如果indexOf()沒(méi)有在userAgent字符串中找到'MSIE',它將返回-1,因此,條件測(cè)試查看結(jié)果是否不等于(!=)-1。當(dāng)indexOf()方法確實(shí)找到了要搜索的字符串,它返回一個(gè)數(shù)字,它等于要查找的字符串的開(kāi)始位置。如下的示例使得事情更加清晰一些:
var quote='To be, or not to be.' var searchPosition=quote.indexOf('To be');//returns 0
在這里,indexOf()在字符串'To be, or not to be.'中搜索'To be'的位置。較大的字符串以'To be'開(kāi)始,因此,indexOf()在第一個(gè)位置就找到了'To be'。但是,按照編程的方式,第一個(gè)位置認(rèn)為是0,第二個(gè)字母(o)在位置1,并且第三個(gè)字母(在這個(gè)例子中是一個(gè)空格)是2。
indexOf()方法從字符串的開(kāi)頭開(kāi)始搜索。你也可以使用lastIndexOf()方法,從字符串的末尾開(kāi)始搜索。例如,在莎士比亞的名言中,單詞'be'出現(xiàn)在兩個(gè)位置,因此,可以使用indexOf()找到第一個(gè)'be',并使用lastIndexOf()找到最后一個(gè)'be':
var quote="To be, or not to be." var firstPosition=quote.indexOf('be');//returns 3 var lastPosition=quote.lastIndexOf('be');//returns 17
在這兩個(gè)例子中,如果'be'不存在于字符串中的任何位置,結(jié)果將會(huì)是-1;如果只有一個(gè)搜索字符串的實(shí)例,indexO f()和lastIndexOf()將會(huì)返回相同的值,也就是搜索字符串在較大的字符串中開(kāi)始的位置。
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
解決遍歷時(shí)Array.indexOf產(chǎn)生的性能問(wèn)題
javascript中數(shù)組是沒(méi)有indexOf方法,extjs中給數(shù)據(jù)添加了該方法2012-07-07JavaScript運(yùn)行機(jī)制實(shí)例分析
這篇文章主要介紹了JavaScript運(yùn)行機(jī)制,結(jié)合實(shí)例形式分析JavaScript運(yùn)行機(jī)制相關(guān)原理、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04js實(shí)現(xiàn)登錄框鼠標(biāo)拖拽效果
本文主要介紹了js實(shí)現(xiàn)登錄框鼠標(biāo)拖拽效果的實(shí)例,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03JS+HTML5實(shí)現(xiàn)的前端購(gòu)物車(chē)功能插件實(shí)例【附demo源碼下載】
這篇文章主要介紹了JS+HTML5實(shí)現(xiàn)的前端購(gòu)物車(chē)功能插件,結(jié)合完整實(shí)例形式分析了JS結(jié)合HTML5的storage特性存儲(chǔ)數(shù)據(jù)實(shí)現(xiàn)購(gòu)物車(chē)功能的相關(guān)操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-10-10Bootstrap3 多個(gè)模態(tài)對(duì)話框無(wú)法顯示的解決方案
這篇文章主要介紹了Bootstrap3 多個(gè)模態(tài)對(duì)話框無(wú)法顯示的解決方案,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02Webpack實(shí)現(xiàn)多頁(yè)面打包的方法步驟
本文主要介紹了Webpack實(shí)現(xiàn)多頁(yè)面打包的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01