2012-09-06 75 views
0

文字我有链接:入住使用jQuery

<a href="/test/number/3/phone/0">33df</a> 

如何检查,如果在这个环节的话“数量”和“电话”?

我想功能,例如:

check('number', '<a href="/test/number/3/phone/0">33df</a>'); //return TRUE 
    check('phone', '<a href="/test/number/3/phone/0">33df</a>'); //return TRUE 
    check('mail', '<a href="/test/number/3/phone/0">33df</a>'); //return FALSE 

我想使用jQuery

+0

有一些jQuery验证的可供下载的插件。你也可以采取regx的方法,但我会建议找到一个验证插件,你可以沉入其中。 – Lowkase

+0

[你有什么尝试?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – ShadowScripter

回答

0

该功能将检查您的所有<a>标签,并返回包含文本的<a>元素列表。 Check out this jsFiddle.

function check(text, elements){ 
    var list = []; 
    if(!elements) 
     $('a').each(function(){ 
      if($(this).attr('href').indexOf(text)!=-1) 
       list.push(this); 
     }); 
    else 
     $.each(elements,function(){ 
      if($(this).attr('href').indexOf(text)!=-1) 
       list.push(this); 
     }); 
    return list; 
} 
console.log(check('number')); 

如果你想测试,并确保你是返回包含多个单词<a>元素,然后你可以做这样的事情:

matches = check('number'); 
matches = check('phone', matches); 
matches = check('mail', matches); 
console.log(matches); 
0
var href = $("a").attr("href"); 
    if(href.indexOf("number") >= 0){ 
    alert("contains number"); 
    } 
    if(href.indexOf("phone") >= 0){ 
    alert("contains phone"); 
    } 
    if(href.indexOf("mail") >= 0){ 
    alert("contains mail"); 
    } 

见演示:http://jsfiddle.net/CcLHz/

2

无需jQuery的只是使用indexOf()

jsFiddle EXAMPLE

function check(token, value){ 
    return value.indexOf(token) >= 0; 
} 
0
function check(text, str) { 
    var r = new RegExp(text, 'gi'); 
    return r.test(str); 
} 
0

到了这里,我甚至授予您的要求使用jQuery:

var check = function(val, linkHtml) { 
    return ($(linkHtml).attr("href").indexOf(val) >= 0); 
} 
0
function check(word, str) { 
    var p = new RegExp(word); 
    return str.match(p); 
} 
0
RegExpObject.test(string) 

你的情况,那就是:

if(/(phone)+|(number)+/.test('<a href="/test/number/3/phone/0">33df</a>')) 
{ 
//returns true 
}else{ 
//returns false 
} 

这应该工作。干杯。