我有一个用Java构建的正则表达式。
String expr = "<a.*?id=\"(pres.*?)\".*?>Discharge.*?Medications:</a>";
我想在Javascript中使用相同的正则表达式。 它会有所不同吗?
答案 0 :(得分:5)
我建议你不要这样做。
为什么呢?我将向您指出StackOverflow上最受欢迎的答案之一:https://stackoverflow.com/a/1732454/851498
在javascript中,你最好使用DOM而不是正则表达式来解析HTML。
示例:
var a = document.querySelectorAll('a');
for ( var i = 0, len = a.length; i < len; i++ ) {
// If the id starts with "pres"
if ( a[ i ].id.substr( 0, 3 ) === 'pres' ) {
// check a[ i ].textContent
}
}
或者如果你正在使用jQuery:
$('a').each( function() {
if ( this.id.substr( 0, 3 ) === 'pres' ) {
// check $( this ).text()
}
} );
我没有对最后一部分进行编码,但你明白了。使用$( this ).text()
上的正则表达式会没问题,它不是HTML。
答案 1 :(得分:2)
没有太大的不同。 JavaScript中的正则表达式介于/
之间。所以它看起来像这样:
var expr = /<a.*?id=\"(pres.*?)\".*?>Discharge.*?Medications:</a>/;
编辑,错误的斜杠。糟糕。
答案 2 :(得分:2)
或者,您可以这样做:
var expr = new RegExp("<a.*?id=\"(pres.*?)\".*?>Discharge.*?Medications:</a>");
有关JavaScript中RegExp的更多详细信息,请参阅MDN文档: https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions
答案 3 :(得分:1)
会是一样的。所有主流正则表达式引擎都支持正则表达式的相同基本语法。有些人在顶部添加了自己的功能,但你的例子并没有做任何异乎寻常的事情。