[英]Javascript Regular Expression: Replace spaced substring from the string
[英]Get a substring from a string for a regular expression in JavaScript
我有以下形式的字符串:
data-translate='view-7631b26ea80b1b601c313b15cc4e2ab03faedf30'>Avatar data
它可以使用不同的語言,但是無論如何我都需要獲取字符''之間的字符串。也就是說,在上面的示例中,我需要獲取以下字符串:
view-7631b26ea80b1b601c313b15cc4e2ab03faedf30
我可以使用string.replace(regexp,str)方法嗎?
我使用以下正則表達式突出顯示了所需的行:
/'\b(.*)\b'/gm
現在,使用string.replace
方法刪除除...以外的所有內容...
有什么建議嗎?
使用match
方法。
var data = "data-translate='view-7631b26ea80b1b601c313b15cc4e2ab03faedf30'>Avatar data";
data = data.match(/'\b(.*)\b'/gm)
兩側都有良好的實心錨文本,因此:
var match = /data-translate='([^']+)'/.exec(str);
var substr = match && match[1];
現場示例:
var str = "data-translate='view-7631b26ea80b1b601c313b15cc4e2ab03faedf30'>Avatar data"; var match = /data-translate='([^']+)'/.exec(str); var substr = match && match[1]; document.body.innerHTML = "<pre>Got: [" + substr + "]</pre>";
但是,正如我在評論中所說,再次使用簡單的正則表達式從HTML提取信息通常注定會失敗 。 例如,您可能不想匹配以下內容:
<p>The string is data-translate='view-7631b26ea80b1b601c313b15cc4e2ab03faedf30'</p>
...然而,一個簡單的正則表達式解決方案將做到這一點。 要正確處理HTML,必須使用正確的HTML解析器。
您也可以嘗試以下一種方法:
/\'([^\']+)\'/gm
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.