javascript中indexOf技术详解


Posted in Javascript onMay 07, 2015

JavaScript提供了几种技术,来在字符串中搜索一个单词、数字或其他的一串字符。搜索可能很方便,例如,如果你想要知道访问者使用哪种Web浏览器来浏览你的站点。每个Web浏览器在一个字符串中标识关于自己的信息,该字符串包含了很多不同的统计数据。可以通过在一个Web页面中添加下面这段JavaScript,并且在Web浏览器预览,从而看到这个字符串:

<script>
alert(navigator.userAgent);
</script>

Navigator是一个Web浏览器对象,并且userAgent是navigator对象的一个属性。userAgent属性包含了长长的一串信息,例如,对于运行在Windows XP上的Internet Explorer 7,其userAgent属性是:Mozilla/4.0(compatible;MSIE 7.0;Windows NT 5.1)。因此,如果你想看看Web浏览器是IE 7的情况,你可以在userAgent字符串中只搜索“MSIE 7”。搜索字符串的方法之一是indexOf()方法。在字符串之后添加一个句点,然后是indexOf(),并且提供你要查找的字符串。基本的结构如下所示:
string.indexOf('string to look for')

indexOf()方法返回一个数字:如果没有找到搜索字符串,该方法返回-1。因此,如果你想要检查Internet Explorer,可以这样做:

var browser=navigator.userAgent;//this is a string
if(browser.indexOf('MSIE')!=-1){
//this is Internet Explorer
}

在这个例子中,如果indexOf()没有在userAgent字符串中找到'MSIE',它将返回-1,因此,条件测试查看结果是否不等于(!=)-1。当indexOf()方法确实找到了要搜索的字符串,它返回一个数字,它等于要查找的字符串的开始位置。如下的示例使得事情更加清晰一些:

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'开始,因此,indexOf()在第一个位置就找到了'To be'。但是,按照编程的方式,第一个位置认为是0,第二个字母(o)在位置1,并且第三个字母(在这个例子中是一个空格)是2。

indexOf()方法从字符串的开头开始搜索。你也可以使用lastIndexOf()方法,从字符串的末尾开始搜索。例如,在莎士比亚的名言中,单词'be'出现在两个位置,因此,可以使用indexOf()找到第一个'be',并使用lastIndexOf()找到最后一个'be':

var quote="To be, or not to be."
var firstPosition=quote.indexOf('be');//returns 3
var lastPosition=quote.lastIndexOf('be');//returns 17

在这两个例子中,如果'be'不存在于字符串中的任何位置,结果将会是-1;如果只有一个搜索字符串的实例,indexO f()和lastIndexOf()将会返回相同的值,也就是搜索字符串在较大的字符串中开始的位置。

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
js正确获取元素样式详解
Aug 07 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
May 08 Javascript
JS实现闪动的title消息提醒效果
Jun 20 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
Aug 04 Javascript
jQuery插件版本冲突的处理方法分析
Jan 16 Javascript
原生js实现中奖信息无间隙滚动效果
Jan 18 Javascript
浅谈Vue.js
Mar 02 Javascript
JS实现登录页密码的显示和隐藏功能
Dec 06 Javascript
详解如何使用koa实现socket.io官网的例子
Nov 04 Javascript
微信小程序的mpvue框架快速上手指南
May 15 Javascript
vue实现自定义H5视频播放器的方法步骤
Jul 01 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
Dec 04 Vue.js
javascript限制文本框输入值类型的方法
May 07 #Javascript
浅谈Javascript的静态属性和原型属性
May 07 #Javascript
ECMAScript5(ES5)中bind方法使用小结
May 07 #Javascript
JS中获取函数调用链所有参数的方法
May 07 #Javascript
jQuery中animate动画第二次点击事件没反应
May 07 #Javascript
js实现鼠标滑过文字链接色彩变化的效果
May 06 #Javascript
JS实现文字掉落效果的方法
May 06 #Javascript
You might like
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
destoon二次开发入门示例
2014/06/20 PHP
微信支付开发维权通知实例
2016/07/12 PHP
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
JavaScript建立一个语法高亮输入框实现思路
2013/02/26 Javascript
jquery.cookie用法详细解析
2013/12/18 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
xmlplus组件设计系列之网格(DataGrid)(10)
2017/05/05 Javascript
详解原生js实现offset方法
2017/06/15 Javascript
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
vue项目前端错误收集之sentry教程详解
2019/05/27 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
jQuery实现简单评论功能
2020/08/19 jQuery
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
python实现汉诺塔算法
2021/03/01 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
2019/02/21 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
基于python实现学生信息管理系统
2019/11/22 Python
vscode+PyQt5安装详解步骤
2020/08/12 Python
如何利用Python写个坦克大战
2020/11/18 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
小区停车场管理制度
2014/01/27 职场文书
商场端午节活动方案
2014/01/29 职场文书
《小草和大树》教学反思
2014/02/16 职场文书
化学教学随笔感言
2014/02/19 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
2015年简历自我评价范文
2015/03/11 职场文书