js正则表达式提取列表

var html =
    "<ul>\n"
    + "    <l1>北京Beijing</l1>\n"
    + "    <l1>上海Shanghai</l1>\n"
    + "    <l1>新疆维吾尔自治区Xinjiang</l1>\n"
    + "</ul>";

var regex  = /<l1>([\u4e00-\u9fa5]{2,})([A-Za-z]+)<\/l1>/g
var result;
while ((result =regex.exec(html) ) != null){
    console.log(result[1],result[2])
}
北京 Beijing
上海 Shanghai
新疆维吾尔自治区 Xinjiang

使用下面的正则即可,其中非贪婪模式很简单的避免了多个相同标签时匹配不正确的问题

/<span>(.*?)<\/span>/

如果要取出某些属性的标签比如

<span id="user">username</span>

则可以使用如下正则

/<span id="(.*?)">(.*?)<\/span>/

注意: 不要遗忘 g

用于扩展表达式含义

  • g:代表可以进行全局匹配

  • i:代表不区分大小写匹配

  • m:代表可以进行多行匹配