2017-08-01 82 views
-2

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

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

+0

你在找什么输出? – mkaatman

+0

@mkaatman我正在找控制台给我'英国',因为这是正确的比赛 –

+0

我不知道你在这里问什么? – Liam

回答

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); 
    } 
});