1

让我们说我们有 <b>Location: </b> UK, England, London <br>

要使用 RegEx im using 选择这一行(Location:+.*?<br\/?>),这正在完成这项工作,但我需要做的是在单独的变量中返回逗号之间的三个元素。

变量在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

正如预期的那样,我通过使用(Location:[^,]*)这个返回“UK”成功获得了这个国家,但我真的不知道如何修改它以返回“England”,然后再次返回“London”。

我已经看到了一些有关如何选择所有逗号的示例,但是找不到任何可以帮助我指定如何使用“位置:”特定关键字来指定如何在第二个和第三个逗号之后获取文本的示例。

提前致谢

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 回答