javascript中contains是否包含功能实现代码(扩展字符、数组、dom)

一个小误区 JS中的contains

今天想要用JS判断集合中是否包含另一个集合。

发现,Contains并不能达到所要的效果,查找之后发现了问题

原来,js的contains方法用来查看dom元素的包含关系,并不是Java中数组的contains方法。

先看一下duyunchao同学分享的代码

$(document).ready(function() {
				var Arrays = ['11','22','33'];
				var Array ='11';
				if(Arrays.indexOf(Array) >= 0) {
					alert('Arrays中包含Array');
				}
			});

若js要判断数组的包含关系,应该用indexof

原生JS中是有contains方法的,但只有dom元素的包含关系,这里我们就为大家分享一下扩展的字符string与数组arr的扩展代码

结构与测试代码如下

<div id="div1">
<div id="div2">
jb51.net
</div>
</div>
<script type="text/javascript">
var div1= document.getElementById("div1");
var div2= document.getElementById("div2");
console.log(div1.contains(div2));

var str1="jb51.net";
var str2="jb51";
console.log(str1.contains(str2));
</script>

但它并不是字符串方法,,仅用于判断DOM元素的包含关系,参数是Element类型

若要在JS中判断俩字符串的包含关系,用indexOf()

但是我们可以通过扩展的方法来实现

<div id="div1">
<div id="div2">
jb51.net
</div>
</div>
<script type="text/javascript">
var div1= document.getElementById("div1");
var div2= document.getElementById("div2");
console.log("div1.contains(div2)="+div1.contains(div2));

//字符扩展contains就不会报错了
String.prototype.contains = function(a) {
 return - 1 < this.indexOf(a)
};

var str1="jb51.net";
var str2="jb51";
console.log("str1.contains(str2)="+str1.contains(str2));

//数组扩展contains适用于数组判断
Array.prototype.contains = function(a) {
 if ("string" == typeof a || "number" == typeof a) for (var b in this) if (a == this[b]) return ! 0;
 return ! 1
};

var arr1=["jb51.net","jbzj.com","jb51.com"];
var str3="jb51.net";
console.log("arr1.contains(str3)="+arr1.contains(str3));
</script>

下面是运行结果

所以后期我们的代码可以加上这两段即可

//字符扩展contains就不会报错了
String.prototype.contains = function(a) {
 return - 1 < this.indexOf(a)
};
//数组扩展contains适用于数组判断
Array.prototype.contains = function(a) {
 if ("string" == typeof a || "number" == typeof a) for (var b in this) if (a == this[b]) return ! 0;
 return ! 1
};

以上就是javascript中contains是否包含功能实现代码(扩展字符、数组、dom)的详细内容,更多关于js contains的资料请关注我们其它相关文章!

(0)

相关推荐

  • 判断数组是否包含某个元素的js函数实现方法

    判断数组是否包含某个元素的js函数实现方法 Array.prototype.contains = function(obj) { var i = this.length; while (i--) { if (this[i] === obj) { return true; } } return false; } 或 Array.prototype.contains = function(element) { for (var i = 0; i < this.length; i++) { if (t

  • 编写js扩展方法判断一个数组中是否包含某个元素

    在C#语法中判断集合是否包含某个元素可以使用Contains方法,但是类似的问题在javascript中要怎么处理呢,js中没有Contains方法. 我们可以利用js的原型扩展来封装一个我们自己的Contains方法. js代码: 复制代码 代码如下: <script type="text/javascript"> $(function () { Array.prototype.contains = function (element) { //利用Array的原型pro

  • js判断一个字符串是否包含一个子串的方法

    本文实例讲述了js判断一个字符串是否包含一个子串的方法.分享给大家供大家参考.具体如下: 在我们前端日常开发中,经常会遇到判断一个字符串中是否包含某个子串,这里我们将去探究一些解决此种需求的方法以及正确的使用它们.理想情况下,我们要找的是一个能匹配我们的目的(if x contains y)的方法,并返回true或false. 一.String.prototype.indexOf和String.prototype.lastIndexOf 这两个方法,可能是我们最容易想到的,如果包含子串,则返回大

  • jstl中判断list中是否包含某个值的简单方法

    如何判断list中是否包含某个值, 很遗憾,contains是不行的,只能穷举了 <a id="aHref_${device[0]}" onclick='addSelectDeviceId(${device[0]})'> <c:set var="iscontain" value="false" /> <c:forEach items="${sessionScope.SelectDeviceIdsList}&

  • jsp 判断list是否包含string的实现方法

    在jstl里面有fn:contains(str,str)这样的方法来判断字符串是否包含另一个字符串,可是没有判断list是否包含string的方法,所以就自己写了一个方法 contains.tag: <%@ tag import="java.util.List" %> <%@ tag import="org.apache.commons.lang3.StringUtils" %> <%@ tag import="java.ut

  • JS实现判断数组是否包含某个元素示例

    本文实例讲述了JS实现判断数组是否包含某个元素.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> Array.prototype.S = String.fromC

  • javascript 判断字符串是否包含某字符串及indexOf使用示例

    通过判断指定目录实现广告的显示 复制代码 代码如下: if(location.href.indexOf("http://www.jb51.net/codes/")>-1){ alert('ok'); } 复制代码 代码如下: var Cts = "bblText"; if(Cts.indexOf("Text") >= 0 ) { alert('Cts中包含Text字符串'); } indexOf用法: 返回 String 对象内第一次

  • javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系

    从那起,我已经对这些方法做了大量的研究,并且已经在很多场合使用他们.在很多任务中,他们被证明是非常有用的(特别关于结构的抽象 DOM 选择器). 1.DOMElement.contains(DOMNode) 这个方法起先用在 IE ,用来确定 DOM Node 是否包含在另一个 DOM Element 中. 当尝试优化 CSS 选择器遍历(像:"#id1 #id2"),这个方法很有用.你可以通过 getElementById 得到元素,然后使用 .contains() 确定 #id1

  • JS中判断某个字符串是否包含另一个字符串的五种方法

    String对象的方法 方法一: indexOf()   (推荐) var str = "123" console.log(str.indexOf("2") != -1); // true indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置.如果要检索的字符串值没有出现,则该方法返回 -1. 方法二:match() var str = "123" var reg = RegExp(/3/); if(str.match(reg

  • js contains方法实现代码

    为了兼容IE和FF我们不得不用以下方法: dom contains 方法 by 司徒正美 if(!!window.find){ HTMLElement.prototype.contains = function(B){ return this.compareDocumentPosition(B) - 19 > 0 } } window.onload = function(){ var A = document.getElementById('parent'), B = document.getE

  • JavaScript中扩展Array contains方法实例

    javascript的Array没有contains方法,有时候这会不方便,contains方法实现很简单: 复制代码 代码如下: function contains(a, obj) {     var i = a.length;     while (i--) {        if (a[i] === obj) {            return true;        }     }     return false; } 当然我们也可以扩展Array类,如下js 复制代码 代码如下

  • JavaScript判断数组是否包含指定元素的方法

    本文实例讲述了JavaScript判断数组是否包含指定元素的方法.分享给大家供大家参考.具体如下: 这段代码通过prototype定义了数组方法,这样就可以在任意数组调用contains方法 /** * Array.prototype.[method name] allows you to define/overwrite an objects method * needle is the item you are searching for * this is a special variab

  • JS给Array添加是否包含字符串的简单方法

    JS的Array类型,本身并没有是否包含某个字符串的方法,下面的代码实现了此功能,有需要的同学可以看一下: Array.prototype.contains = function(v){ var b = false; for(var i=0;i<this.length;i++){ if(this[i] == v){ b = true; break; } } return b; }; 以上就是小编为大家带来的JS给Array添加是否包含字符串的简单方法全部内容了,希望大家多多支持我们~

  • 使用js判断数组中是否包含某一元素(类似于php中的in_array())

    while case速度最快 复制代码 代码如下: function contains(arr, str) {    var i = arr.length;    while (i--) {           if (arr[i] === str) {           return true;           }       }       return false;}

  • JS检测输入字符是否包含非法字符的示例代码

    复制代码 代码如下: function checks(t){   szMsg="[#_%&'/",;:=!^]";   alertStr="";   for(i=1;i<szMsg.length+1;i++){    if(t.indexOf(szMsg.substring(i-1,i))>-1){     alertStr="请勿包含非法字符如[#_%&'/",;:=!^]";     break

  • javascript 判断数组是否已包含了某个元素的函数

    复制代码 代码如下: Array.prototype.contains = function(obj) { var i = this.length; while (i–) { if (this[i] === obj) { return true; } } return false; } 或 复制代码 代码如下: Array.prototype.contains = function (element) { for (var i = 0; i < this.length; i++) { if (t

  • JavaScript判断一个字符串是否包含指定子字符串的方法

    本文实例讲述了JavaScript判断一个字符串是否包含指定子字符串的方法.分享给大家供大家参考.具体分析如下: 下面的JS代码,为String对象定义了一个contains方法用于判断字符串是否包含子字符串,非常有用. if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(obj, start) { for (var i = (start || 0), j = this.length; i < j; i++) {

  • js判断数组是否包含某个字符串变量的实例

    最近碰到一个这样的现象,后台返回的数据中,数组里面有一些有变量值,有一些没有变量值. 举个例子,比如后台返回的例子是这样的: var arr=[ { "status":"success", "activerUserData": [ {"activeUser":"张珊","activeUserMobile":"15542175311","countNum&qu

随机推荐