Как преобразовать значение атрибута jquery в строковый объект, чтобы использовать его в качестве выражения регулярного выражения? - PullRequest
0 голосов
/ 05 апреля 2011

Я хочу найти строковую переменную, если она содержит значение attr объекта jQuery.Я пробовал это:

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);

на этот раз он вернул истину.я думал, что jquery не возвращает строковый объект, и я попытался превратить его в строку, как это:

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

это также вернул false ..

, когда я использовал toString ($ ("#link"). attr ("href")) всегда возвращает true, даже если значение attr не равно "a.html"

Кто-нибудь может мне помочь в этом?благодарю вас.

Ответы [ 4 ]

1 голос
/ 05 апреля 2011

Чтобы создать регулярное выражение из строки:

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)

, который вернет true, если 'a.html' находится в txt.

1 голос
/ 05 апреля 2011

Сделайте это:

var txt = "lets go to a.html";
var searchText = $("#link").attr("href");
alert(txt.indexOf(searchText) !== -1);
0 голосов
/ 05 апреля 2011

Хорошо, проблема решена, я должен извиниться всем, кто потратил время, чтобы решить эту проблему проблема была в моем HTML :( я поместил пустой символ в атрибут href следующим образом:

<a href="a.html ">

коды, которые я дал всем, работают хорошо:)

0 голосов
/ 05 апреля 2011

В зависимости от того, какой браузер вы тестируете в атрибуте href, при запросе через jQuery будет возвращен полный URL-адрес, даже если вы указали его в качестве относительного URL-адреса.

Проверьте, чтобы убедиться, что $('#link').attr('href') фактически возвращает a.html, а не http://url/a.html.

...