0

文字列変数に jQuery オブジェクトの attr 値が含まれている場合、その変数を検索したいと考えています。私はこれを試しました:

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

しかし、これは常に false を返します。$("#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);

これもfalseを返しました..

toString($("#link").attr("href")) を使用すると、attr値が「a.html」でなくても常にtrueを返します

誰でもこれで私を助けることができますか?ありがとうございました。

4

4 に答える 4

1

これを行う:

var txt = "lets go to a.html";
var searchText = $("#link").attr("href");
alert(txt.indexOf(searchText) !== -1);
于 2011-04-05T09:14:07.557 に答える
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 に答える
0

href 属性でテストしているブラウザーによっては、jQuery を介してクエリを実行すると、相対 URL に設定した場合でも完全修飾 URL が返されます。

$('#link').attr('href')が実際にa.htmlではなくを返すことを確認するためにテストしますhttp://url/a.html

于 2011-04-05T09:15:00.950 に答える
0

わかりました問題は解決しました。この問題を解決するために時間を費やしたすべての人に申し訳ありません。問題は私のhtmlにありました:(私は次のようにhref属性内にemty文字を入れました:

<a href="a.html ">

私が与えたコードはすべてうまく機能しています:)

于 2011-04-05T10:45:25.697 に答える