Javascript 正则表达式前瞻问题

Javascript 正则表达式前瞻问题,javascript,html,regex,Javascript,Html,Regex,我需要从html文件中检索税额,但是JavaScript似乎不支持前瞻。这是我需要找到的代码和字符串 HTML代码段 <td align="right" valign="top"><span style="font-family:verdana,arial; font-size:12px; color:#000000;"><b>Tax:</b></span></td> <td align="right" valign=

我需要从html文件中检索税额,但是JavaScript似乎不支持前瞻。这是我需要找到的代码和字符串

HTML代码段

<td align="right" valign="top"><span style="font-family:verdana,arial; font-size:12px; color:#000000;"><b>Tax:</b></span></td>
<td align="right" valign="top"><span style="font-family:verdana,arial; font-size:12px; color:#000000;"><b>$30.10</b></span></td>
税:
$30.10
正则表达式字符串

(?<=(Tax:.*\n.*))(=?\$\d*.\d{2})

(?此操作不需要向前看或向后看。请尝试匹配此模式:

Tax:[\s\s]*?(\$\d*\.\d{2})


然后替换为
$1

首先javascript不支持
lookbehind
。其次,您的
lookbehind
有一个可变长度(
*
),这是大多数正则表达式风格所不支持的。最后添加您想用这个
做的事(=?
)一个lookbeahead(比如
(?=)
?那么语法是错误的,否则就可以了

但你可以做到这一点,而不必后顾之忧

改用这个:

pattern = new RegExp(/Tax:[\s\S]*?<b>(\$\d+(\.\d+)?)<\/b>/i);
match = pattern.exec(input);
alert(match[1]);
pattern=newregexp(/Tax:[\s\s]*?(\$\d+(\.\d+))/i);
match=pattern.exec(输入);
警报(匹配[1]);

前瞻的语法是
(?=
),而不是
(=?

除此之外,您不需要“向前看”或“向后看”(JS不支持)

Tax:.*\n.*(\$\d*.\d{2})

您不能在JavaScript中使用lookbehind。它不受支持。