Javascript 如何使用正则表达式提取特定文本
下面是我用来对输入字符串应用regex来提取两个组的代码,即百分比和颜色Javascript 如何使用正则表达式提取特定文本,javascript,regex,Javascript,Regex,下面是我用来对输入字符串应用regex来提取两个组的代码,即百分比和颜色 var variable = "#clasemedia[ percentage <= 100] { polygon-fill: #B20026;} #clasemedia [ percentage <= 74] { polygon-fill: #DE181D; } #clasemedia [ percentage <= 66] { polygon-fill: #EF3323; }#clasemed
var variable = "#clasemedia[ percentage <= 100] { polygon-fill: #B20026;} #clasemedia [ percentage <= 74] { polygon-fill: #DE181D; } #clasemedia [ percentage <= 66] { polygon-fill: #EF3323; }#clasemedia [ percentage <= 60] { polygon-fill: #FC532B; }#clasemedia [ percentage <= 55] { polygon-fill: #FD7636; }#clasemedia [ percentage <= 50] { polygon-fill: #FD9740; }#clasemedia [ percentage <= 47] { polygon-fill: #FEAD4A; }#clasemedia [ percentage <= 45] { polygon-fill: #FEC25D; }#clasemedia [ percentage <= 41] { polygon-fill: #FEDA77; }#clasemedia [ percentage <= 36] { polygon-fill: #FFF9A9; }"
pollo = variable.match(/(#\w+\s*\[\s+(\w+\s+\<\=\s+\w+)\]\s+\{[\s+\w-\w\:#\w;]+\})/g)
for(i=0; i<pollo.length; i++){
promedio = pollo[i].match(/\[\s+(\w+\s+\<\=\s+\d[0-9]+)\]\s/g)
color = pollo[i].match(/\{[\s+\w-\w\:\s+#\w\s+;]+\}/g)
$("ul").append("<li>percentage "+promedio+"color "+color+"</li>");
}
JS Fiddle-使用捕获组提取所需的特定部分:
for (i = 0; i < pollo.length; i++) {
var matches = pollo[i].match(/\[\s+<=\s+(\d+)\]\s+\{\s+\w+-\w+:\s+(#\w+);\}/);
$("ul").append("<li>percentage " + matches[1] + " color " + matches[2] + "</li>");
}
for(i=0;i `谢谢,代码和解释我都可以自己做
percentage 100 color #B20026
for (i = 0; i < pollo.length; i++) {
var matches = pollo[i].match(/\[\s+<=\s+(\d+)\]\s+\{\s+\w+-\w+:\s+(#\w+);\}/);
$("ul").append("<li>percentage " + matches[1] + " color " + matches[2] + "</li>");
}
promedio = pollo[i].match(/\[\s+(\w+\s+\<\=\s+\d[0-9]+)\]\s/g).pop().match(/(\d+)/g).pop()
color = pollo[i].match(/\{[\s+\w-\w\:\s+#\w\s+;]+\}/g).pop().match(/#[a-zA-Z0-9]*/g).pop()
var x = (/percentage\s*\<\=\s*(\d*).*\.*#([a-zA-Z0-9]*)/g).exec(pollo[i]);
// gives output ["percentage <= 100] { polygon-fill: #B20026", "100", "B20026"]
color = x.pop();
promedio = x.pop();