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 相关文章推荐
ie和firefox不兼容的解决方法集合
Apr 28 Javascript
url 编码 js url传参中文乱码解决方案
Apr 11 Javascript
使用js修改客户端注册表的方法
Aug 09 Javascript
JS执行删除前的判断代码
Feb 18 Javascript
鼠标滑过出现预览的大图提示效果
Feb 26 Javascript
在JavaScript中如何解决用execCommand(
Oct 19 Javascript
JQUERY表单暂存功能插件分享
Feb 23 Javascript
JScript实现表格的简单操作
Aug 15 Javascript
在Vue中使用highCharts绘制3d饼图的方法
Feb 08 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
Oct 20 Javascript
详解vue 项目白屏解决方案
Oct 31 Javascript
JavaScript交换变量常用4种方法解析
Sep 02 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写的带缓存数据功能的mysqli类
2012/09/06 PHP
PHP调用wsdl文件类型的接口代码分享
2014/11/19 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
JS常用字符串处理方法应用总结
2014/05/22 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
jquery实现的代替传统checkbox样式插件
2015/06/19 Javascript
javascript实现的简单计时器
2015/07/19 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
JS设计模式之单例模式(一)
2017/09/29 Javascript
浅谈webpack devtool里的7种SourceMap模式
2019/01/14 Javascript
vue+ESLint 配置保存 自动格式化代码
2020/03/17 Javascript
vue3.0 上手体验
2020/09/21 Javascript
[03:46]DOTA2英雄基础教程 维萨吉
2013/12/11 DOTA
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
[01:03:56]Mineski vs TNC 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python实现决策树C4.5算法的示例
2018/05/30 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
Python 私有化操作实例分析
2019/11/21 Python
python实现简单坦克大战
2020/03/27 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
Spring http服务远程调用实现过程解析
2020/06/11 Python
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
个人优缺点自我评价
2014/01/27 职场文书
活动总结格式范文
2014/04/26 职场文书
驾驶员安全责任书
2014/07/22 职场文书
无私奉献演讲稿
2014/09/04 职场文书
自荐信格式范文
2015/03/04 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
开业典礼致辞
2015/07/29 职场文书
生活委员竞选稿
2015/11/21 职场文书
MySQL8.0的WITH查询详情
2021/08/30 MySQL