如何匹配.each中的字符串?

时间:2017-08-01 15:14:03

标签: javascript jquery

假设:

var countries = ["Afghanistan", "United Kingdom", "Albania", "United Arab Emirates"];
var regex = new RegExp(countries.join("|"), "i");

$wikiDOM.find(".infobox td div li a").each(function(){
  var newtext = $(this).text();
  //console.log(newtext);
  console.log(newtext.match(regex));
});

如果我这样做:

console.log(newtext);

我明白了:

White
Asian
Black
Mixed
Arab
1]
United Kingdom
England and Wales
^
Legislative Grand Committee

所以我们确实匹配United Kingdom但是当我运行console.log(newtext.match(regex));时,控制台会给我null null null...

我正在寻找一个字符串与数组中字符串的匹配,如果匹配,则在控制台中输出匹配。在这种情况下,它将是United Kingdom

这是jsFiddle

1 个答案:

答案 0 :(得分:0)

我通过.each()获得的列表确实给了我在数组中的英国,但html是United Kingdom因此我做了:

$wikiDOM.find(".infobox td div li a").each(function(){
  var newtext = $(this).html();
  var newtextStriped = newtext.replace(/ /g,' ');
  if( $.inArray(newtextStriped, countries) != -1){
    console.log(newtextStriped);
  }
});