0
我試了3個小時左右。我面臨使用JavaScript正則表達式的問題。我應該如何使用RegExp來獲得我想要的JavaScript?
我有一個字符串,如下
var str = 'test123↵↵http://www.youtube.com/watch?v=6W89sMJ25nI';
我用正則表達式獲得url比賽,但我也想,除了網址等文字。
var match = 'https://www.youtube.com/watch?v=6W89sMJ25nI';
var str = 'test123↵http://www.youtube.com/watch?v=6W89sMJ25nI';
var str2 = 'test123↵↵';
function checkStringContainUrl(s) {
var re = new RegExp("([a-zA-Z0-9]+://)?([a-zA-Z0-9_]+:[a-zA-Z0-9_][email protected])?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?(/.*)?");
if(re.test(s)) {
console.log("url inside");
console.log(re.exec(s)[1] + re.exec(s)[3] + re.exec(s)[5]);
// i also want to console 'test123↵↵'
} else {
console.log('no url inside');
}
}
function checkLink(match) {
var re = /https?:\/\/(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube(?:-nocookie)?\.com\S*[^\w\s-])([\w-]{11})(?=[^\w-]|$)(?![?=&+%\w.-]*(?:['"][^<>]*>|<\/a>))[?=&+%\w.-]*/ig;
var m = re.exec(match);
console.log(m[1]);
}
//checkLink(match);
checkStringContainUrl(str);
哦,感謝幫助我的問題編輯。 – tommychoo
你必須問自己一些關於「其他」文本的問題嗎?是否總會有「↵」或某種分隔符?在這種情況下,您可以在執行正則表達式之前使用分割...可以是任何文本,還是您已經知道它不包含某些字符?它會始終在URL之前嗎?等等 – raphv
嘗試這個正則表達式:/(.+)(https?:\/\/.+)/有一個想法。在第一組括號中捕獲文本,並在第二組括號中捕獲鏈接。不知道爲什麼你的正則表達式是如此複雜,但讓我知道,也許我可以改善草擬的正則表達式 –