我有一个用 Java 构建的正则表达式。
String expr = "<a.*?id=\"(pres.*?)\".*?>Discharge.*?Medications:</a>";
我想在 Javascript 中使用相同的正则表达式。它会不同还是相同?
我有一个用 Java 构建的正则表达式。
String expr = "<a.*?id=\"(pres.*?)\".*?>Discharge.*?Medications:</a>";
我想在 Javascript 中使用相同的正则表达式。它会不同还是相同?
我建议你不要这样做。
为什么?我只会指出 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。
没有太大的不同。JavaScript 中的正则表达式介于/
's 之间。所以它看起来像这样:
var expr = /<a.*?id=\"(pres.*?)\".*?>Discharge.*?Medications:</a>/;
编辑,错误的斜线。哎呀。
或者,您可以执行以下操作:
var expr = new RegExp("<a.*?id=\"(pres.*?)\".*?>Discharge.*?Medications:</a>");
有关 JavaScript 中 RegExp 的更多详细信息,请参阅 MDN 文档: https ://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions
它会是一样的。所有主流的正则表达式引擎都支持相同的正则表达式基本语法。有些人在顶部添加了自己的功能,但您的示例并没有做任何古怪的事情。