2

ここの投稿を読んだ後、私は以下のように正規表現で値を取得しようとしました:

var myString = "<a href='/search.html?id=HDJ&area=ASD&estate=JKG&ppt=3'></a>";
var myRegexp = /&estate=(.*?)(?:\s|$)/g;
var match = myRegexp.exec(myString);
match[1]

結果はでしたがJKG&propertytype=3'></a>、私は欲しいだけですJKG。厳密に言えば、私はとの間の価値が欲しいのですが&estate=&ppt誰かがそれを行う方法を提案できますか?

ありがとう

4

5 に答える 5

2

正規表現:

/&estate=(.*?)&ppt=/g

注:正規表現を使用してクエリ文字列を解析することはお勧めしません。もろいです。クエリ文字列の変数の順序が変わるかどうかを検討してください。その場合は、「JavaScriptでクエリ文字列を解析する」を読むことをお勧めします。

于 2013-01-02T05:10:41.863 に答える
2

行う:

var myString = "<a href='/search.html?id=HDJ&area=ASD&estate=JKG&ppt=3'></a>";
var myRegexp = /estate=(.*)&ppt=/g;
var match = myRegexp.exec(myString);
console.log( match[1] );
于 2013-01-02T05:11:42.767 に答える
1

ソリューションのみが重要な場合は、次を使用できます。

var myString = "<a href='/search.html?id=HDJ&area=ASD&estate=JKG&ppt=3'></a>";
var indx1 = mystring.indexOf("&estate=") + 8;
var indx2 = mystring.indexOf("&ppt");
var neededString = mystring.substring(indx1, indx2);
于 2013-01-02T06:00:17.660 に答える
0

選択からアンパサンドを除外するだけです。

var myRegexp = /&estate=([^&]+)/g;

不動産が最初のパラメータである場合は、これに変更することをお勧めします。

var myRegexp = /[\?&]estate=([^&]+)/g;
于 2013-01-02T05:13:18.757 に答える
0

jsFiddle

結果の値に基づいてsplit、アンパサンドでそれだけで、新しい正規表現や代替正規表現は必要ありません。

JavaScript:

var myString = "<a href='/search.html?id=HDJ&area=ASD&estate=JKG&ppt=3'></a>";
var myRegexp = /&estate=(.*?)(?:\s|$)/g;
var match = myRegexp.exec(myString);

var value = match[1].split('&')[0];

alert( value );
于 2013-01-02T05:19:23.053 に答える