繁体   English   中英

使用正则表达式提取数据

[英]Extracting data using regular expressions

给定以下字符串,如何在数据选择后的引号之间提取字符串(即THIS-DATA)。 无论是使用单引号还是双引号,或者在等号之前或之后是否有任何空格,我都希望它能够工作。 谢谢

<td><img alt="abc" src="lib/templates/administrator/images/star.png" data-selected="THIS_DATA" title="None" class="vtip"></td>

你能用jQuery吗? 不确定为什么需要使用正则表达式。

var $el = $(".vtip");
var data = $el.attr('data-selected');

或原生javascript:

var el = document.querySelector(".vtip");
var data = el.getAttribute('data-selected');

或带有数据集的本机javascript:

var el = document.querySelector(".vtip");
var data = el.dataset.selected;

使用数据集的更多信息: https//developer.mozilla.org/en-US/docs/DOM/element.dataset

简单的正则表达式,假设THIS_DATA不包含引号:

var reg = /data-selected\s*=\s*["']([^"']*)["']/;

使用:

function extractData(yourString) {
    var match = str.match(yourString);
    return match ? match[1] : "";
}

编辑:

甚至更简单:

var data = str.replace(/.*data-selected\s*=\s*["']([^"']*)["'].*/, "$1");

您可以将字符串解析为dom

var xmlStr = '<td><img alt="abc" src="lib/templates/administrator/images/star.png" data-selected="THIS_DATA" title="None" class="vtip"></td>';
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlStr, "text/xml");

var path = 'img/@data-selected';

var nodes = xmlDoc.evaluate(path, xmlDoc, null, XPathResult.ANY_TYPE, null);


var result = nodes.iterateNext();
var data-selected  = result.textContent;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM