我正在寻找一个干净的jquery代码,该代码可在textarea中返回url。.我找到了一些解决方案,但它并不是那么有用。 假设我有一些文字:
我曾经访问过https://jobscane.com,它对于查找 在巴基斯坦的工作。 https://google.com帮助我找到了它。
因此脚本应在上面的字符串中返回2个网址
到目前为止,我尝试过的是。
<script>
$(document).ready(function(){
$("#textarea").on('keyup', function(){
const regex = /((?:https?:|www\.)[^\s]+)/g;
const str = $(this).val();
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
});
});
</script>
答案 0 :(得分:4)
可以摆脱while
并使用match()
$("textarea").on('keyup', function() {
const regex = /((?:https?:|www\.)[^\s]+)/g;
const str = $(this).val();
let m = str.match(regex);
if (m) {
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
}).keyup(); // trigger event for demo
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea> I have visited https://jobscane.com and it was so useful for finding
jobs in pakistan. and https://google.com helped me to find it.
</textarea>