首页 > 解决方案 > 如何从 textarea 值中提取 url

问题描述

我有一个 textarea 我如何能够从该 textarea 值中提取 url。url 可以是随机的多个 url。我正在尝试使用下面的方法,但我在使用这种方法时遇到了以下问题 -

  1. 如果我添加多个新行(shift+enter),则正则表达式不起作用。例如:两个或三个新行。
  2. 如果我添加像1. https://www.google.com, 2. https://www.facebook.com这样的 url,那么它不会提取 url。
  3. 如果我在写了一些文字后添加了网址,例如:(此处为新文字https://www.google.com
  4. 如果我在连字符后添加 url 例如:(此处为新文本 - https://www.google.com

问题 - 如何以这样的格式从 textarea 值中提取 url

["https://www.google.com","https://www.facebook.com","http://www.test.co","http://www.news.co.in" ,]

urlChecker(value : string){
      let urlRegex= new RegExp("([a-zA-Z0-9]+://)?([a-zA-Z0-9_]+:[a-zA-Z0-9_]+@)?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?([^ ])+");
      let urlWithinText : string = '';
      let urls : Array<string> = [];
    
      if (value != '' && urlRegex.test(value)){
        let matchedIfUrl = urlRegex.exec(value);
        if(matchedIfUrl != null && matchedIfUrl != undefined){
          urlWithinText = matchedIfUrl[0].replace(/^(\s*)|(\s*)$/g, '').replace(/\s+/g, ',')
          urls = urlWithinText.split(',');
          console.log(urlWithinText);
        }
      }
    }

标签: javascriptangular

解决方案


你想要的代码。

Javascript 有一个内置函数:match(regExpPattern)


推荐阅读