javascript - 正则表达式或拆分函数
问题描述
大家下午好!
我正在尝试制作一个正则表达式或拼接来删除句子中的链接和链接中的句子。
到目前为止,我在这里实现了这一点:
function replaceURL(text) {
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i;
return text.replace(exp, "$1");
}
console.log(replaceURL1("Hi, watch my video https://youtu.be/urllink"))
我想要这样的结果:
let phrase = "Hi, watch my video";
let url = "https://youtu.be/urllink";
有人可以帮助我吗?我不太了解正则表达式......如果你成功拆分会怎么样?
谢谢️!
解决方案
我会这样处理:
- 编写一个可以识别字符串中的 URL 的函数,该函数返回 URL
- 在原始字符串上使用 String.replace 删除找到的 URL
URL 可能很难为其编写正则表达式,因为管理 URL 的规范支持大量的变体以及巨大的 UTF-16 字符集。您可以通过假设每个 URL 都以“http:”或“https:”开头来避免所有这些复杂性。
function getUrlFromString( string ) {
return string.match(/ *(https?:[^ ]+)/i)[0]
}
function separateUrlAndStatement( string ) {
let url = getUrlFromString(string)
let statement = string.replace(url, '')
return { url, statement }
}
推荐阅读
- java - 为 Flink Job 创建可分页的 JDBC 源
- javascript - 使用 Ag-Grid 过滤 1 个单元格中的 2 个数据
- javascript - 角度 8 中的 AWS Amplify i18n 国际化
- ruby-on-rails - 如何从 Ruby on Rails 的下拉菜单中仅获取唯一值
- python - 如何在 Python 3.3+ 中将变量导入其他 python 文件?
- java - 如何在 Java 中使用 liquibase 对表和索引使用不同的表空间
- c# - 网站如何理解何时应该显示验证码?
- mongodb - mongodb 聚合并使用 $group 来求和并取出所有数据
- python - LSTM,Keras:推理模型应该有多少层?
- c# - 大字节数组 - 在字节数组中存储长度有什么好处?