我正在尝试使用正则表达式从文本中提取ID。例如 05771292000P 来自:
<div class="product-price-container"> <a href="/rca-32-class-720p-60hz-led-hdtv-with-built-in-dvd-player-led32b30rqd/226660215" class="product-link subject-price" data-external-product-id="05771292000P"> <span class="save-story-box">
尝试使用正则表达式(?=id=").*">
,但它会在id之后返回单词,这没有帮助。
知道我做错了吗?
答案 0 :(得分:2)
试试这个正则表达式:
ID = “([0-9A-ZA-Z] +)”
答案 1 :(得分:2)
尝试
var text = '<div class="product-price-container"> <a href="/rca-32-class-720p-60hz-led-hdtv-with-built-in-dvd-player-led32b30rqd/226660215" class="product-link subject-price" data-external-product-id="05771292000P"> <span class="save-story-box">'
text.match(/data-external-product-id="([0-9A-Za-z]+)"/)[1]
match(...)
返回一个数组,其中整个匹配作为第一个元素,而您的组匹配(即[0-9A-Za-z]+
)作为第二个元素。如果你可以信任来自你获取文本的来源,你也可以使用jQuery(here the code on jsFiddle):
var text = '<div class="product-price-container"> <a href="/rca-32-class-720p-60hz-led-hdtv-with-built-in-dvd-player-led32b30rqd/226660215" class="product-link subject-price" data-external-product-id="05771292000P"> <span class="save-story-box">'
var id = $($.parseHTML(text)).find("a").attr("data-external-product-id")
alert(id) // 05771292000P
请记住,如果他可以控制已解析的文本,那么每个人都可以使用$.parseHTML
执行恶意JavaScript。因此,如果您可以控制已解析的文本,请仅使用上述解决方案。