从 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>";
但是,正如我在评论中所说,using a simple regular expression to extract information from HTML is usually doomed to fail。例如,您可能不想匹配这个:
<p>The string is data-translate='view-7631b26ea80b1b601c313b15cc4e2ab03faedf30'</p>
...然而,一个简单的正则表达式解决方案就可以做到这一点。要正确处理 HTML,您必须使用正确的 HTML 解析器。
你也可以试试这个:
/\'([^\']+)\'/gm
我有以下形式的字符串:
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>";
但是,正如我在评论中所说,using a simple regular expression to extract information from HTML is usually doomed to fail。例如,您可能不想匹配这个:
<p>The string is data-translate='view-7631b26ea80b1b601c313b15cc4e2ab03faedf30'</p>
...然而,一个简单的正则表达式解决方案就可以做到这一点。要正确处理 HTML,您必须使用正确的 HTML 解析器。
你也可以试试这个:
/\'([^\']+)\'/gm