Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用正则表达式提取特定文本_Javascript_Regex - Fatal编程技术网

Javascript 如何使用正则表达式提取特定文本

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

下面是我用来对输入字符串应用regex来提取两个组的代码,即百分比和颜色

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