match方法的区别说明,jquery实现input输入框实时输入触发事件代码

复制代码 代码如下:

js正则表达式中test,exec,match方法的区别说明

先写出DOM元素的HTML结构:

<input id=”productName” name=”productName” class=”wid10″ type=”text”
value=”” />

test test 返回 Boolean,查找对应的字符串中是否存在模式。
var str = “1a1b1c”;
var reg = new RegExp(“1.”, “”);
alert(reg.test(str)); // true

复制代码 代码如下:

复制代码 代码如下:

exec exec 查找并返回当前的匹配结果,并以数组的形式返回。
var str = “1a1b1c”;
var reg = new RegExp(“1.”, “”);
var arr = reg.exec(str);
如果不存在模式,则 arr 为 null,否则 arr 总是一个长度为 1
的数组,其值就是当前匹配项。arr 还有三个属性:index
当前匹配项的位置;lastIndex 当前匹配项结束的位置(index +
当前匹配项的长度);input 如上示例中 input 就是 str。

<style type=”text/css”>
    /*高亮显示*/
    .highlight{  
            background-color: gray
    }
</style>

//绑定商品名称联想
$(‘#productName’).bind(‘input propertychange’, function()
{searchProductClassbyName();});

exec 方法受参数 g 的影响。若指定了 g,则下次调用 exec 时,会从上个匹配的
lastIndex 开始查找。
var str = “1a1b1c”;
var reg = new RegExp(“1.”, “”);
alert(reg.exec(str)[0]);
alert(reg.exec(str)[0]);
上述两个输出都是 1a。现在再看看指定参数 g:
var str = “1a1b1c”;
var reg = new RegExp(“1.”, “g”);
alert(reg.exec(str)[0]);
alert(reg.exec(str)[0]);
上述第一个输出 1a,第二个输出 1b。

复制代码 代码如下:

复制代码 代码如下:

match match 是 String 对象的一个方法。
var str = “1a1b1c”;
var reg = new RegExp(“1.”, “”);
alert(str.match(reg));
match 这个方法有点像 exec,但:exec 是 RegExp 对象的方法;math 是 String
对象的方法。二者还有一个不同点,就是对参数 g 的解释。
如果指定了参数 g,那么 match 一次返回所有的结果。
var str = “1a1b1c”;
var reg = new RegExp(“1.”, “g”);
alert(str.match(reg));
//alert(str.match(reg)); // 此句同上句的结果是一样的
此结果为一个数组,有三个元素,分别是:1a、1b、1c。

<div>John Resign</div>
<div>George Martin</div>
<div>Malcom John Sinclair</div>
<div>J.Ohn</div>
<div></div>
<p></p>
<div><p>Has p</p></div>

searchProductClassbyName 为触发后调用的方法;

JavaScript中经常用到正则表达式,
而正则表达式中经常用到Match和Test这两个函数,当然还有Exec.
这里以代码实例来区分它们之间的不同吧.

一、:contains(text) 选取含有文本内容为“text”的元素

实现效果:
图片 1

Match Example

复制代码 代码如下:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

标签:
网站地图xml地图