Javascript 正则表达式或分割函数

Javascript 正则表达式或分割函数,javascript,jquery,node.js,Javascript,Jquery,Node.js,大家下午好 我试图制作一个正则表达式或拼接来删除句子中的链接和链接中的句子 到目前为止,我在这里取得了以下成就: 函数替换URL(文本){ var exp=/(\b(https?| ftp | file):\/\/[-A-Z0-9+&@#\/%?=~~|!:,.;]*[-A-Z0-9+&@#\/%=~|]/i; 返回文本。替换(exp,“$1”); } log(replaceURL1(“嗨,看我的视频https://youtu.be/urllink")) 我想要这样的结果: 让短语=“嗨,看我

大家下午好

我试图制作一个正则表达式或拼接来删除句子中的链接和链接中的句子

到目前为止,我在这里取得了以下成就:

函数替换URL(文本){
var exp=/(\b(https?| ftp | file):\/\/[-A-Z0-9+&@#\/%?=~~|!:,.;]*[-A-Z0-9+&@#\/%=~|]/i;
返回文本。替换(exp,“$1”);
}
log(replaceURL1(“嗨,看我的视频https://youtu.be/urllink"))
我想要这样的结果:

让短语=“嗨,看我的视频”;
让url=”https://youtu.be/urllink";
有人能帮我吗? 我不太懂正则表达式。。。 如果你成功地使用split,你会怎么做


谢谢️!

我会这样处理:

  • 编写一个函数,该函数可以在字符串中标识URL,并返回URL
  • 对原始字符串使用String.replace删除找到的URL
  • URL可能很难为其编写正则表达式,因为管理URL的规范支持大量变体以及庞大的UTF-16字符集。通过假设每个URL都以“http:”或“https:”开头,您可以避免所有这些复杂性

    函数getUrlFromString(字符串){ 返回字符串.match(/*(https?:[^]+)/i)[0] } 函数separateUrlAndStatement(字符串){ 让url=getUrlFromString(字符串) let语句=string.replace(url“”) 返回{url,语句} }
    我会这样处理:

  • 编写一个函数,该函数可以在字符串中标识URL,并返回URL
  • 对原始字符串使用String.replace删除找到的URL
  • URL可能很难为其编写正则表达式,因为管理URL的规范支持大量变体以及庞大的UTF-16字符集。通过假设每个URL都以“http:”或“https:”开头,您可以避免所有这些复杂性

    函数getUrlFromString(字符串){ 返回字符串.match(/*(https?:[^]+)/i)[0] } 函数separateUrlAndStatement(字符串){ 让url=getUrlFromString(字符串) let语句=string.replace(url“”) 返回{url,语句} }
    字符串的哪些部分始终存在,哪些部分可以更改?例如,链接是否可以放在句子的前面?请小心使用
    .split()
    ,因为它会删除拆分时使用的字符/字符串。例如,给定
    var str=“嗨,在http://youtu.be/urllink";您可以执行
    var result=str.split(/https?:\/\/.*$/)但匹配的URL“http://-etc-“将不在结果数组中。字符串的哪些部分将始终存在,哪些部分可以更改?”?例如,链接是否可以放在句子的前面?请小心使用
    .split()
    ,因为它会删除拆分时使用的字符/字符串。例如,给定
    var str=“嗨,在http://youtu.be/urllink";您可以执行
    var result=str.split(/https?:\/\/.*$/)但匹配的URL“http://-etc-将不在结果数组中。我可以在此处执行某些操作,我将完成并编辑投票,但您将获得一个前导空格
    http://youtu.be/etc“
    在结果中。我会使用非捕获组和捕获组:
    .match(/(?:*)(https?:\/\/[^]+$)/)[1]
    Doh!抢手货不过,修剪两个字符串可能更简单。我可以在这里做一些事情,我会完成并编辑投票,但您会得到一个前导空格
    “http://youtu.be/etc“
    在结果中。我会使用非捕获组和捕获组:
    .match(/(?:*)(https?:\/\/[^]+$)/)[1]
    Doh!抢手货不过,修剪两个字符串可能更简单。