javascript indexOf函数使用说明


Posted in Javascript onJuly 03, 2008

使用方法:strObj.indexOf(str,startIndex[可选])

 程序代码

其中strObj是必选项。String 对象或文字。
str是必选项。要在 String 对象中查找的子字符串。
startIndex是可选项。该整数值指出在 String 对象内开始查找的位置,从0开始。如果省略,则从字符串的开始处查找。

注意:对于JavaScript的indexOf是区分大小写的。

JavaScript中indexOf函数方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到字符串,则返回 -1。如果 startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。

indexOf函数是从左向右执行查找
下面的示例说明了indexOf函数方法的用法。

 程序代码

var str1="fdiejDIFADF";
var str="e";
var i=str1.indexOf(str);
alert(i);

在前面说了,indexOf是区分大小的写,有时这就给我们造成了一定的麻烦,那怎么解决呢??当然最简单的方法是把字符用toLowerCase或toUpperCase转化为大写或小写就解决了。
代码如下:

 程序代码

<script>
var Str = 'ABCDEF';
var Str1 = 'bcd';
alert(Str.toLowerCase().indexOf(Str1.toLowerCase()));
str2 = 'AbCdEf';
alert(Str2.toLowerCase().indexOf(Str1.toLowerCase()));
</script>

下面这个方法利用正则对indexOf进行了扩展(来自网络)

 程序代码

<script>
String.prototype.indexOf = function(f,m){
var mm = (m == false) ? "i":"";
var re = eval("/"+ f +"/"+mm);
var rt = this.match(re);
return (rt == null) ? -1:rt.index; 
}
var test = "absnegKIugfkalg";
alert(test.indexOf("kiu",false));
</script>

下面的这个扩展就更强大了,它兼容原来的 indexOf函数,也可以进行忽略大小的查找(同样来自网络)。

 程序代码

<script language="javascript">
String.prototype._indexOf = String.prototype.indexOf;
String.prototype.indexOf = function()
{
        if(typeof(arguments[arguments.length - 1]) != 'boolean')
                return this._indexOf.apply(this,arguments);
        else
        {
                var bi = arguments[arguments.length - 1];
                var thisObj = this;
                var idx = 0;
                if(typeof(arguments[arguments.length - 2]) == 'number')
                {
                        idx = arguments[arguments.length - 2];
                        thisObj = this.substr(idx);
                }

                var re = new RegExp(arguments[0],bi?'i':'');
                var r = thisObj.match(re);
                return r==null?-1:r.index + idx;
        }
}
alert("bcssssasdfsdf".indexOf('A',3,true));
alert("bcssssasdfsdf".indexOf('a',3));
</script>

Javascript 相关文章推荐
30个最好的jQuery 灯箱插件分享
Apr 25 Javascript
删除条目时弹出的确认对话框
Jun 05 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
May 12 Javascript
JavaScript事件详细讲解
Jun 27 Javascript
理顺8个版本vue的区别(小结)
Sep 17 Javascript
详解ESLint在Vue中的使用小结
Oct 15 Javascript
详解CommonJS和ES6模块循环加载处理的区别
Dec 26 Javascript
Angular2实现的秒表及改良版示例
May 10 Javascript
jQuery实现每日秒杀商品倒计时功能
Sep 06 jQuery
JavaScript使用localStorage存储数据
Sep 25 Javascript
VUEX采坑之路之获取不到$store的解决方法
Nov 08 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
Aug 21 Javascript
复制本贴标题和地址的js代码
Jul 01 #Javascript
js文字滚动停顿效果代码
Jun 28 #Javascript
js兼容标准的表格变色效果
Jun 28 #Javascript
js查找父节点的简单方法
Jun 28 #Javascript
一个小型js框架myJSFrame附API使用帮助
Jun 28 #Javascript
JavaScript 给汉字排序实例代码
Jun 28 #Javascript
教你如何解密js/vbs/vbscript加密的编码异处理小结
Jun 25 #Javascript
You might like
先进的自动咖啡技术,真的可以取代咖啡师吗?
2021/03/06 冲泡冲煮
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
jQuery版Tab标签切换
2011/03/16 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
node.js中的http.request方法使用说明
2014/12/14 Javascript
轻松创建nodejs服务器(4):路由
2014/12/18 NodeJs
jQuery大于号(&gt;)选择器的作用解释
2015/01/13 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
js实现发送验证码后的倒计时功能
2015/05/28 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
nodejs提示:cross-device link not permitted, rename错误的解决方法
2019/06/10 NodeJs
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
2020/05/09 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
Vue $attrs &amp; inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
wxPython中listbox用法实例详解
2015/06/01 Python
Django实现分页功能
2018/07/02 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
python 实现将list转成字符串,中间用空格隔开
2019/12/25 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
2020/01/02 Python
解决Pycharm 导入其他文件夹源码的2种方法
2020/02/12 Python
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
校园文化建设方案
2014/02/03 职场文书
技能比赛获奖感言
2014/02/14 职场文书
自查自纠工作总结
2014/10/15 职场文书
先进学校事迹材料
2014/12/30 职场文书
教师工作证明范本
2015/06/12 职场文书