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 相关文章推荐
jquery 查找iframe父级页面元素的实现代码
Aug 28 Javascript
javascript生成随机大小写字母的方法
Feb 20 Javascript
解析javascript中鼠标滚轮事件
May 26 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
Sep 01 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
Oct 28 Javascript
javascript中的try catch异常捕获机制用法分析
Dec 14 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
Oct 11 Javascript
JS实现区分中英文并统计字符个数的方法示例
Jun 09 Javascript
tweenjs缓动算法的使用实例分析
Aug 26 Javascript
JavaScript内置对象之Array的使用小结
May 12 Javascript
vue中watch和computed的区别与使用方法
Aug 23 Javascript
js实现弹幕墙效果
Dec 10 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
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
2011/12/01 PHP
有关PHP中MVC的开发经验分享
2012/05/17 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
php 微信开发获取用户信息如何实现
2016/12/13 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
IE8 引入跨站数据获取功能说明
2008/07/22 Javascript
javascript实现的一个随机点名功能
2014/08/26 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
浅谈jquery设置和获得checkbox选中的问题
2016/08/19 Javascript
Javascript 事件冒泡机制详细介绍
2016/10/10 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
js实现日历与定时器
2017/02/22 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
jQuery实现点击滚动到指定元素上的方法分析
2020/03/19 jQuery
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
jupyter安装小结
2016/03/13 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
Python求解任意闭区间的所有素数
2018/06/10 Python
django 使用 request 获取浏览器发送的参数示例代码
2018/06/11 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
H5调用相机拍照并压缩图片的实例代码
2017/07/20 HTML / CSS
Canvas制作的下雨动画的示例
2018/03/06 HTML / CSS
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
Java软件工程师综合面试题笔试题
2013/09/08 面试题
80后职场人的职业生涯规划
2014/03/08 职场文书
《海底世界》教学反思
2014/04/16 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书
python实现图片批量压缩
2021/04/24 Python