0

如果字符串变量包含 jQuery 对象的 attr 值,我想搜索它。我试过这个:

var txt = "lets go to a.html";
var searchText = new RegExp($("#link").attr("href"));
alert(txt.search(searchText)>=0);

但这总是返回错误。我确定 $("#link").attr("href") 返回 "a.html" 作为值。如果我做错了什么,我也试过这个,

var txt = "lets go to a.html";
var searchText = new RegExp("a.html");
alert(txt.search(searchText)>=0);

这次它返回了 true。我认为 jquery 没有返回一个字符串对象,我试图把它变成这样的字符串:

var txt = "lets go to a.html";
var searchText = new String($("#link").attr("href"));
searchText = new RegExp(searchText);
alert(txt.search(searchText)>=0);

这也返回了错误..

当我使用 toString($("#link").attr("href")) 它总是返回 true 即使 attr 值不是 "a.html"

任何人都可以帮助我吗?谢谢你。

4

4 回答 4

1

从字符串创建正则表达式:

var re = new RegExp('your string');

要查看它是否匹配另一个字符串:

re.test('another string');       // false
re.test('here is your string');  // true

请注意,某些字符必须转义,以便匹配空格:

var re = new RegExp('\\s');

在您的情况下,您应该颠倒测试的意义:

searchText.test(txt)

如果 'a.html' 在 txt 中,它将返回 true。

于 2011-04-05T09:14:28.833 回答
1

做这个:

var txt = "lets go to a.html";
var searchText = $("#link").attr("href");
alert(txt.indexOf(searchText) !== -1);
于 2011-04-05T09:14:07.557 回答
0

根据您在 href 属性中测试的浏览器,当通过 jQuery 查询时,即使您已将其设置为相对 url,也会返回一个完全限定的 url。

测试以确保$('#link').attr('href')实际返回a.html而不是http://url/a.html.

于 2011-04-05T09:15:00.950 回答
0

好的问题解决了我必须向所有花时间解决这个问题的人说对不起问题是在我的 html 上 :( 我在 href 属性中放了一个空字符,如下所示:

<a href="a.html ">

我给出的所有代码都运行良好:)

于 2011-04-05T10:45:25.697 回答