0

我正在尝试获取括号中的一些数据的值。这是我的 Javascript 代码。

var info = $('.printedsubtext:first');
re = /\((.*)\)/i;
console.log(info.match(re)[1]);​

.printedsubtext 看起来像这样(注意后面有一个空的 div,所以我选择了第一次出现)

<div class="printedsubtext" style="margin-top: 10px;"> 
<strong>Merchant SKU:</strong> 155687<br> 
<strong>ASIN:</strong> B009NFT9PK<br>
<strong>Listing ID:</strong> 1009MIKWRIP<br>
<strong>Order-Item ID:</strong> 02975468341162<br>
<strong>Condition:</strong> Used - Good<br>
<strong>Comments:</strong> Publisher: Thomas Y. Crowell&amp;lt;br&amp;gt;Date of Publication: 1973&amp;lt;br&amp;gt;Binding: hard cover&amp;lt;br&amp;gt;Edition: &amp;lt;br&amp;gt;Condition: Good/Fair&amp;lt;br&amp;gt;Description: (M481)&amp;lt;br&amp;gt;<br>
<div class="printedsubtext" style="margin-top: 10px;">
</div>
</div>

我希望代码将 M481 打印到控制台中。

但是,这会产生语法错误。出于某种原因,如果我将信息替换为这样的东西,它会起作用

var info = "Cats make (me) happy";

任何帮助将非常感激。

4

2 回答 2

4

match是一个字符串的方法;您正在从 jQuery 集合中调用它。尝试使用所选元素的文本。

如果你想在搜索中包含 HTML,你应该使用:

var info = $('.printedsubtext:first').html();

如果您只想考虑文本节点,请使用:

var info = $('.printedsubtext:first').text();
于 2013-02-02T21:58:07.743 回答
0

这应该有效:

var txt = $(".printedsubtext").text();
re = txt.match(/\((.+)\)/);
alert(re[1]);
于 2013-02-02T22:44:08.343 回答