2

私はコードのこの部分を持っています

<a href='project.php?id=5'>test</a> 

数値の長さが異なる場合idがあり、この数値のみを抽出する必要があります。正規表現、またはそれ以上の方法で可能ですか?

編集

私の問題に合わせて、あなたが考えている解決策があると思います:

string.split('=')[2].split('\'')[0]

文字列にテキストが含まれている場合。確かに、そのテキストは常に同じパターンになります

4

2 に答える 2

3

あなたがあなたの文字列を持っているとしましょう"<a href='project.php?id=5'>test</a>"

正規表現を使用して HTML を解析すると、非常に見苦しくなります (aより多くの属性があるとどうなるでしょうか? そこに複数のタグがあるとどうなるでしょうか?)

最もクリーンな方法は、それを新しい HTML 要素にダンプし、文字列としてではなく、DOM API に組み込まれた強力なネイティブを使用して HTML として処理することです。

var temp = document.createElement("div");
temp.innerHTML = "<a href='project.php?id=5'>test</a>";
var url = temp.firstChild.href; // now contains project.php?id=5

これで、従来のツールを使用して ID を抽出できるようになりました

var id = url.split("=")[1]; // the first thing after =.

より一般的な戦略は次のとおりです。

  • 空の要素またはフラグメントを作成し、そこに HTML を配置します
  • DOM クエリ メソッドを使用して要素を検索します。この場合.firstChildは十分でしたがgetElementsByTagNamequerySelector便利かもしれません。
  • 属性を取得すると、それは単純な文字列になり、正規表現や選択したその他の文字列処理方法を安全​​に使用できます。

DOM API に慣れていない場合は、このチュートリアルから始めることをお勧めします。これは、JavaScript でドキュメントを処理する方法であり、フロントエンド JavaScript 開発者としての成功にとって重要であることを理解しています。

フィドル

于 2013-08-26T06:35:22.860 に答える