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 相关文章推荐
JavaScript TO HTML 转换
Jun 26 Javascript
如何判断图片地址是否失效
Feb 02 Javascript
confirm的用法示例用于按钮操作时确定是否执行
Jun 19 Javascript
举例详解JavaScript中Promise的使用
Jun 24 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
Nov 17 Javascript
jQuery中trigger()与bind()用法分析
Dec 18 Javascript
ng2学习笔记之bootstrap中的component使用教程
Mar 09 Javascript
Vue实例中生命周期created和mounted的区别详解
Aug 25 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
Sep 25 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
Dec 07 Javascript
2分钟实现一个Vue实时直播系统的示例代码
Jun 05 Javascript
Vue组件跨层级获取组件操作
Jul 27 Javascript
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实现的简单压缩英文字符串的代码
2008/04/24 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
Extjs4 关于Store的一些操作(加载/回调/添加)
2013/04/18 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
jquery对象和DOM对象的任意相互转换
2016/02/21 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
2017/03/11 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
[03:20]次级联赛厮杀超职业 现超级兵对拆世纪大战
2014/10/30 DOTA
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
Python遍历目录中的所有文件的方法
2016/07/08 Python
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
用Python实现读写锁的示例代码
2018/11/05 Python
利用pyshp包给shapefile文件添加字段的实例
2019/12/06 Python
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
C++:局部变量能否和全局变量重名
2014/03/03 面试题
应届毕业生自我鉴定范文
2013/12/27 职场文书
任命书范本大全
2014/06/06 职场文书
新兵入伍心得体会
2014/09/04 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
试用期辞职信范文
2015/03/02 职场文书
感恩节寄语2015
2015/03/24 职场文书
2015年文明创建工作总结
2015/04/30 职场文书
深入理解python协程
2021/06/15 Python
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python