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+XMLHttpRequest+asp.net无刷新读取数据库数据
Aug 09 Javascript
jquery将一个表单序列化为一个对象的方法
Jan 03 Javascript
Jquery遍历Json数据的方法
Apr 20 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
Mar 10 Javascript
JS获取地址栏参数的两种方法(简单实用)
Jun 14 Javascript
基于WebUploader的文件上传js插件
Aug 19 Javascript
微信小程序 使用picker封装省市区三级联动实例代码
Oct 28 Javascript
three.js绘制地球、飞机与轨迹的效果示例
Feb 28 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
Oct 17 Javascript
js删除数组中的元素delete和splice的区别详解
Feb 03 Javascript
vue.js+element-ui动态配置菜单的实例
Sep 07 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
Jul 12 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获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
php类常量用法实例分析
2015/07/09 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
为JS扩展Array.prototype.indexOf引发的问题探讨及解决
2013/04/24 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
JavaScript 事件入门知识
2015/04/13 Javascript
jQuery根据元素值删除数组元素的方法
2015/06/24 Javascript
javascript中for/in循环及使用技巧
2015/09/01 Javascript
jquery实现九宫格大转盘抽奖
2015/11/13 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
Vue插件写、用详解(附demo)
2017/03/20 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
python的常见命令注入威胁
2013/02/18 Python
Python中元组,列表,字典的区别
2017/05/21 Python
Python3.5 创建文件的简单实例
2018/04/26 Python
Python谱减法语音降噪实例
2019/12/18 Python
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
不同浏览器创建XMLHttpRequest方法有什么不同
2014/11/17 面试题
英语系本科生个人求职信
2013/09/21 职场文书
怎样写好自荐信和推荐信
2013/12/26 职场文书
《美丽的小路》教学反思
2014/02/26 职场文书
大学生就业策划书范文
2014/04/04 职场文书
年终工作总结范文2014
2014/11/27 职场文书
2015年街道办事处工作总结
2015/05/22 职场文书
2019脱贫攻坚工作总结报告范本!
2019/08/06 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python