Javascript-获取textarea中的所有网址

时间:2018-07-21 18:10:47

标签: javascript jquery regex

我正在寻找一个干净的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>

1 个答案:

答案 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>