Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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 使用regexp提取第一个属性值_Javascript - Fatal编程技术网

Javascript 使用regexp提取第一个属性值

Javascript 使用regexp提取第一个属性值,javascript,Javascript,如果我有像 var a = '<?xml version="1.0" encoding="Windows-1251"?> .. encoding="utf-8"'; ?如果您真的想使用正则表达式,正如您的问题一样,您可以使用 var val = a.match(/<\?xml[^>]+\s+encoding="([^"]*)"/)[1]; 请注意,如果您不确定该属性是否存在,那么在获取索引1处的元素之前,应该检查返回的数组是否为null。我强烈建议使用解析器。Java

如果我有像

var a = '<?xml version="1.0" encoding="Windows-1251"?> .. encoding="utf-8"';

如果您真的想使用正则表达式,正如您的问题一样,您可以使用

var val = a.match(/<\?xml[^>]+\s+encoding="([^"]*)"/)[1];

请注意,如果您不确定该属性是否存在,那么在获取索引1处的元素之前,应该检查返回的数组是否为null。

我强烈建议使用解析器。JavaScript拥有相当强大的xml解析功能。我使用cheerio解析器,它似乎无法处理以?开头的标记?。不接受任何其他解析器,regexp是唯一的方法。
/\sencoding\=\“(.*?\”/
强烈建议不要对stringtforward解决方案使用regex for xml。如果在编码之前我有一些其他属性的值,那么它将不起作用,因此我必须指定数组的其他元素数。您的建议可能与无效值匹配,例如,
@dystroy无论如何,我宁愿远离它
var val = a.match(/<\?xml[^>]+\s+encoding="([^"]*)"/)[1];
var val = a.match(/<\?xml(\s+[^>="]+="[^"]+")*\s+encoding="([^"]*)"/)[1];