1

私たちが持っているとしましょう <b>Location: </b> UK, England, London <br>

RegEx im using でこの行を選択する(Location:+.*?<br\/?>)には、これは仕事をしていますが、私がする必要があるのは、別々の変数のコンマの間の 3 つの要素を返すことです。

変数はjavascriptです。

var location = document.body.outerHTML.match(/(Location:+.*?<br\/?>)/gi);   //returns entire line with Location:**is working
var country = document.body.outerHTML.match(/(Location:[^,]*)/gi);         //returns UK, USA etc **is working
var state = document.body.outerHTML.match(/(Location:???;                  //needs to return 'England' etc 
var city= document.body.outerHTML.match(/(Location:???;                   //needs to return 'London' etc

この戻り値 'UK' を期待どおりに使用して国を取得することに成功しましたが、(Location:[^,]*)'England' を返し、さらに 'London' を返すように修正する方法が本当にわかりません。

すべてのコンマを選択する方法の例をいくつか見てきましたが、「場所:」という特定のキーワードを使用して、2 番目と 3 番目のコンマの後にテキストを取得する方法を指定するのに役立つものは見つかりません。

前もって感謝します

4

2 に答える 2

1

これを使用できます:

var tmp = document.body.outerHTML.match(
    /Location: <\/b> ([^,]+), ([^,]+), ([^,]+)/i
);

var country = tmp[1];
var state   = tmp[2];
var city    = tmp[3];

コンマの間にスペースがある単語も一致するように更新されました。

于 2013-05-18T12:32:34.627 に答える
0

親要素から参照することで、問題を単純化することができます。

<div id='parentElement'><b>Location: </b> UK, England, London <br /></div>

var arr=document.getElementById('parentElement').childNodes[1].nodeValue.split(',');

var country = arr[0];
var state   = arr[1];
var city    = arr[2];
于 2013-05-18T12:40:44.580 に答える