0

次の文字列が与えられた場合、data-selected (つまり、THIS-DATA) に続く引用符の間の文字列を抽出するにはどうすればよいでしょうか。一重引用符または二重引用符が使用されているかどうか、または等号の前後に空白があるかどうかに関係なく、機能することを望みます。ありがとうございました

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

3 に答える 3

1

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");
于 2012-11-24T20:11:36.503 に答える
1

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

于 2012-11-24T19:54:46.437 に答える
0

文字列を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;
于 2012-11-24T20:04:33.297 に答える