簡體   English   中英

從字符串中為JavaScript中的正則表達式獲取子字符串

[英]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.

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