在JavaScript中,我有以下幾點:JavaScript和Java之間的正則表達式模式的差異?
function replaceURLWithHTMLLinks(text) {
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
return text.replace(exp,"<a href='$1'>$1</a>");
}
它取代所有輸入字符串的URL的一個版本,有一個錨標記纏着把它變成一個鏈接的URL。我試圖在Java中有以下功能複製此功能:
private String replaceURLWithHTMLLinks(String text) {
String pattern = "/(\\b(https?|ftp|file):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;]*[-A-Z0-9+&@#\\/%=~_|])/i";
return text.replaceAll(pattern, "<a href=\"$1\">$1</a>");
}
然而,當它工作正常,在JavaScript中沒有找到在Java中的任何比賽,即使是相同的輸入字符串。我是否需要改變模式中的某些內容,或者發生了什麼?
對不起,offtopic,但使用正則表達式解析HTML標記爲不安全和EMM ..難看。 – 2016-09-07 07:41:33