簡體   English   中英

javascript中的正則表達式解析

[英]Regex parsing in javascript

你能幫助我解析我嘗試了很多但無法做到的正則表達式嗎?

輸入: <a onclick="javascript:collapse('displayText','hideText','whyInfo-arrow-image')"><span sd:text="${whyInfoLabel}">Learn more about Authentication</span> <img id="whyInfo-arrow-image" sd:src="${downwardArrowImage}" height="20" width="20" >

預期: sd:text="${whyInfoLabel}"sd:src="${downwardArrowImage}"

我的嘗試 1 : "/\\$\\{(\\w*)\\}/g"它只能選擇{whyInfoLabel} & {downwardArrowImage}

我的嘗試 2 : "/sd.*\\$\\{(\\w*)\\}/g"這無法拆分。

我對 Regex 和 JavaScript 很陌生。

任何幫助都會很棒。

你在JS,為什么不使用DOM來解析HTML呢? 正則表達式並非旨在解析 HTML,但 DOM 提供了專門為此目的而設計的實用程序。

如果您的瀏覽器支持它,您應該考慮使用DOMParser來執行此操作:

var html = "<a onclick=\"javascript:collapse('displayText','hideText','whyInfo-arrow-image')\"><span sd:text=\"${whyInfoLabel}\">Learn more about Authentication</span>  <img id=\"whyInfo-arrow-image\" sd:src=\"${downwardArrowImage}\" height=\"20\" width=\"20\" >";

var parser = new DOMParser();
var doc = parser.parseFromString(html, "text/html");

var attrText = doc.querySelector('span').getAttribute("sd:text");
console.log(attrText);

var attrSrc = doc.querySelector('img').getAttribute("sd:src");
console.log(attrSrc);

“${whyInfoLabel}”
“${downwardArrowImage}”

試試這個:/( /(sd:.*=".*")/Ug :. /(sd:.*=".*")/Ug

或者這樣: /\\{(.*)\\}/Ug

這應該給你一個數組中的兩個結果:

/sd:(?:text|src)=\"[^\"]*"/g

正則表達式匹配 'sd:' 開頭,然后是 'text' 或 'src'、等號、雙引號后跟零個或多個不是雙引號的字符,最后是雙引號。

只需調用(假設您的文本位於名為'text'的變量中:

var regex =/sd:(?:text|src)=\"[^\"]*"/g;
var matches = text.match(regex);
var match0 = matches[0];
var match1 = matches[1];

你可以試試這個正則表達式。 希望這可以幫助。

 const regex = /\\w+:\\w+="\\$\\{\\w*\\}"/g; const input = '<a onclick="javascript:collapse(' + 'displayText' + ',' + 'hideText' + ','+ 'whyInfo-arrow-image' + ')"><span sd:text="${whyInfoLabel}">Learn more about Authentication</span> <img id="whyInfo-arrow-image" sd:src="${downwardArrowImage}" height="20" width="20" >'; console.log(input.match(regex))

asdf = new RegExp('(sd:.+?[}])+', 'gi');
console.log(str.match(asdf));

更一般:

(?<=["\s])[^\s]+?\s?=\s?"\$\{(?:\w*)\}"

正則表達式 101

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM