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 Event学习第七章 事件属性
Feb 07 Javascript
JS判断文本框内容改变事件的简单实例
Mar 07 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
Mar 14 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
Dec 09 Javascript
JavaScript字符串对象
Jan 14 Javascript
jQuery页面弹出框实现文件上传
Feb 09 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
Mar 09 Javascript
JavaScript实现精美个性导航栏筋斗云效果
Oct 29 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
Nov 10 jQuery
jQuery Dom元素操作技巧
Feb 04 jQuery
Vue render函数实战之实现tabs选项卡组件
Apr 22 Javascript
深入解析微信小程序开发中遇到的几个小问题
Jul 11 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输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
Laravel实现构造函数自动依赖注入的方法
2016/03/16 PHP
PHP实现数组的笛卡尔积运算示例
2017/12/15 PHP
转换json格式的日期为Javascript对象的函数
2010/07/13 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
2010/10/20 Javascript
用js传递value默认值的示例代码
2014/09/11 Javascript
原生JS实现LOADING效果
2015/03/16 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
jQuery AJAX timeout 超时问题详解
2016/06/21 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
JavaScript实现计数器基础方法
2017/10/10 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
JavaScript调用模式与this关键字绑定的关系
2018/04/21 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
[01:14]辉夜杯战队访谈宣传片—NEWBEE.Y
2015/12/26 DOTA
python django集成cas验证系统
2014/07/14 Python
python实现的简单文本类游戏实例
2015/04/28 Python
python中argparse模块用法实例详解
2015/06/03 Python
Python3字符串学习教程
2015/08/20 Python
python实现随机森林random forest的原理及方法
2017/12/21 Python
送给他或她的礼物:FUN.com
2018/08/17 全球购物
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
小学节能减排倡议书
2014/05/15 职场文书
李白故里导游词
2015/02/12 职场文书
2015年个人思想总结
2015/03/09 职场文书
张思德观后感
2015/06/09 职场文书
初婚初育证明范本
2015/06/18 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
oracle设置密码复杂度及设置超时退出的功能
2022/06/28 Oracle