场景:
js中判断一个string是否在一个js的数组中。
方法:
代码如下 |
复制代码 |
if (['a', 'b', 'c'].indexOf(str) >= 0) { //do something }
|
判断选择的文件的扩展名是否在指定的数组中:
代码如下 |
复制代码 |
var position = selectedFilePath.lastIndexOf("."); if(position<=0){ alert("不允许上传这种扩展名的文件!"); return; } else{ var ext = selectedFilePath.substr(position); ext = ext.toLowerCase(); var extArr = [".jpg",".png",".gif", ".jpeg"]; if(extArr.indexOf(ext) == -1){ alert("不允许上传这种扩展名的文件!"); return; } }
|
问题:ie9以下的版本不支持 [].indexOf()
解决方案
针对ie8及以下版本,自己创建indexOf函数。
ie8.js :
代码如下 |
复制代码 |
if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(elt /*, from*/) { var len = this.length >>> 0;
var from = Number(arguments[1]) || 0; from = (from < 0) ? Math.ceil(from) : Math.floor(from); if (from < 0) from += len;
for (; from < len; from++) { if (from in this && this[from] === elt) return from; } return -1; }; }
|
然后在相关页面中引入ie8.js
代码如下 |
复制代码 |
<!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <script src="./assets/js/ie8.js"></script> <![endif]-->
|
分享到:
相关推荐
13.3 Execution of JavaScript Programs 317 13.4 Compatibility and Interoperability 325 13.5 Accessibility 332 13.6 Security 332 13.7 Client-Side Frameworks 338 14. The Window Object . . . . . . . . . ....
i++){ if (browser.indexOf(mobileAgent[i])!=-1){ isMobile = true; //alert(mobileAgent[i]); location.href = '手机网址'; break; } } </script> 修改手机网址为自己的站点手机站目录,如...
37.返回字符串2在字符串1中出现的位置:String1.indexOf("String2")!=-1则说明没找到. 38.取字符串中指定位置的一个字符:StringA.charAt(9); 39.取出字符串中指定起点和终点的子字符串:stringA.substring(2,6); 40....
4.名字中不能包含空格。 在XML文档中任何的差错,都会得到同一个结果:网页不能被显示。各浏览器开发商已经达成协议,对XML实行严格而挑剔的解析,任何细小的错误都会被报告。你可以将上面的myfile.xml修改一下,...
<input type=text onkeypress="return event.keyCode>=48&&event.keyCode||(this.value.indexOf(".")<0?event.keyCode==46:false)" onpaste="return !clipboardData.getData("text").match(/D/)" ondragenter=...
37.返回字符串2在字符串1中出现的位置:String1.indexOf("String2")!=-1则说明没找到. 38.取字符串中指定位置的一个字符:StringA.charAt(9); 39.取出字符串中指定起点和终点的子字符串:stringA.substring(2,6); 40....
Sortable is a <s>minimalist</s> JavaScript library for reorderable drag-and-drop lists. Demo: http://rubaxa.github.io/Sortable/ ## Features * Supports touch devices and [modern]...
在现在代浏览器中判断一个元素在不在一个数组中,咱们可以用Array对象的indexOf()方法来取得这个元素在当前数组中的索引值,若索引值不等于-1,数组中就存在这个元素, 例如: var arr = [2,53,23,'test',9,'array'...
在不支持 Array.IsArray 和 Array.indexOf 的旧浏览器上,在之前包含 es5-shim github.com/es-shims/es5-shim 一些问题: 仅适用于支持属性和 ~= 选择器的浏览器(无 IE6 及以下) 模块名称仅在 IE 上区分大小写...
在JavaScript中,数组可以使用Array构造函数来创建,或使用[]快速创建,这也是首选的方法。数组是继承自Object的原型,并且他对typeof没有...比如IE8以下的浏览器不支持Array的indexOf方法,为了让数组支持indexOf,我
垫片.js 这是一个小的 javascript 文件,用于使 Internet Explorer 8 和 9 快速使用我常用的一些功能。 它并不打算成为这些功能的完整实现(或什至严格准确),只是足以在 99% 的情况下通过。... Array.indexOf Da
var is_moz = (navigator.product == ‘Gecko’) && userAgent.substr(userAgent.indexOf(‘firefox’) + 8, 3); var is_ie = (userAgent.indexOf(‘msie’) != -1 && !is_ope
因为IE7在数组对象上使用indexOf会报错,所以需要重写一个兼容性的。 代码如下: Array.prototype.lastIndexOf(item,index){ var n = this.length,i = (index==null||index>n-1)?n-1:index; if(i ...
主干验证器版本1.1.5 - 添加了emptyOk以允许通常需要更复杂检查(即正则... 0.4.3 - IE 不支持Array.prototype.indexOf ,切换到_.indexOf() 0.4.1 - 如果默认值与验证规则不匹配,则现在验证和拒绝默认值。 这应该
注意点:判断值是否在数组的方法“indexOf”是ECMAScript5 方法,IE8以下不支持,需多写一些兼容低版本浏览器代码,源码如下: // 最简单数组去重法 function unique1(array){ var n = []; //一个新的临时数组 //...
indexOf去重 Array.prototype.unique1 = function() { var arr = []; for (var i = 0; i < this.length; i++) { var item = this[i]; if (arr.indexOf(item) === -1) { arr.push(item); } } return arr; } [1,2...
忽略大小写Replace效率瓶颈IndexOf 随机排列算法 理解C#中的委托[翻译] 利用委托机制处理.NET中的异常 与正则表达式相关的几个小工具 你真的了解.NET中的String吗? .NET中的方法及其调用(一) 如何判断ArrayList,...