簡體   English   中英

Java和JavaScript中的正則表達式

[英]Regular Expression in java and javascript

我有一個用Java構建的正則表達式。

String expr = "<a.*?id=\"(pres.*?)\".*?>Discharge.*?Medications:</a>";

我想在Javascript中使用相同的正則表達式。 是不同還是相同?

我建議你不要這樣做。

為什么? 我將為您指出StackOverflow上最受好評的答案之一: https ://stackoverflow.com/a/1732454/851498

在javascript中,與使用正則表達式解析HTML相比,最好使用DOM。

例:

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中的正則表達式介於/之間。 所以它看起來像這樣:

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

會是一樣的。 所有主流的正則表達式引擎都對正則表達式支持相同的基本語法。 有些人在頂部添加了自己的功能,但是您的示例並沒有做任何奇怪的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM