在Javascript中的字符串中,在url的开头和结尾插入一个字符

在Javascript中的字符串中,在url的开头和结尾插入一个字符,javascript,Javascript,我的代码将从某个API中提取一个字符串,并将其返回到一个Discord通道中。为了保持输出干净,我需要用“”符号将任何url包围起来 我最初使用split()函数查找以“http”开头的空格和字符串。但是,当字符串保存它时,这种情况会失败,例如: var string = "I am a string (http://google.com)"; 那么,有没有一种方法可以让我扫描整个字符串来查找和修改这些URL 为清楚起见,我正在寻找: var string = "http://google.c

我的代码将从某个API中提取一个字符串,并将其返回到一个Discord通道中。为了保持输出干净,我需要用“”符号将任何url包围起来

我最初使用split()函数查找以“http”开头的空格和字符串。但是,当字符串保存它时,这种情况会失败,例如:

var string = "I am a string (http://google.com)";
那么,有没有一种方法可以让我扫描整个字符串来查找和修改这些URL

为清楚起见,我正在寻找:

var string = "http://google.com" 
//to become 
var string = "<http://google.com>"
var字符串=”http://google.com" 
//成为
var string=“”
这也必须与“https”一起使用


非常感谢你在这件事上的帮助

查找http://的索引,然后它的结尾将是第一次遇到不允许使用url的字符(空格、非字母数字,但/、、#等除外)


这将是最通用的开始方式,但可以在监视使用它的链接时进行优化。

查找http://的索引,然后它将在第一次遇到不允许使用url的字符(空格、非字母数字,但/、、#等除外)时结束


这是最常用的开始方式,但可以在监视使用它的链接时进行优化。

您可以使用正则表达式在字符串中查找URL,然后将其替换为
。深度解可通过@Crescent Fresh找到

var string=“我是一个字符串(http://google.com)";
函数url(文本){
var urlRegex=/(\b(https?| ftp |文件):\/\/[-A-Z0-9+&@#\/%?=~|!:,.;]*[-A-Z0-9+&@#\/%=~|]/ig;
返回text.replace(urlRegex,函数(url){
返回“”;
});
}

log(url(字符串))
您可以使用正则表达式在字符串中查找URL,然后将其替换为
。深度解可通过@Crescent Fresh找到

var string=“我是一个字符串(http://google.com)";
函数url(文本){
var urlRegex=/(\b(https?| ftp |文件):\/\/[-A-Z0-9+&@#\/%?=~|!:,.;]*[-A-Z0-9+&@#\/%=~|]/ig;
返回text.replace(urlRegex,函数(url){
返回“”;
});
}

log(url(字符串))只是@Ivan answer的补充

可以使用regx和replace()函数

var string=“我是一个字符串(http://google.com)";
var output=string.replace(/(https?:\/\/(www\)?[-a-zA-Z0-9:%.+~+=]{2256}.[a-z]{2,6}\b([-a-zA-Z0-9:%.+.~+.&/=])/,”;

控制台日志(输出)只是@Ivan answer的补充

可以使用regx和replace()函数

var string=“我是一个字符串(http://google.com)";
var output=string.replace(/(https?:\/\/(www\)?[-a-zA-Z0-9:%.+~+=]{2256}.[a-z]{2,6}\b([-a-zA-Z0-9:%.+.~+.&/=])/,”;

控制台日志(输出)应该使用正则表达式。不要依赖空格。使用正则表达式在开始和结束处添加所需的值是最好的选择。您应该使用正则表达式。不要依赖空格。最好的选择是使用正则表达式在开始和结束时添加所需的值;我对如何找到多个索引有了很好的了解;如何查找第一个不允许的字符?我假设string.split()位于索引的开头,然后扫描字符串的其余部分?我不太确定我会怎么做最后一部分;我对如何找到多个索引有了很好的了解;如何查找第一个不允许的字符?我假设string.split()位于索引的开头,然后扫描字符串的其余部分?我不太确定我将如何做最后一部分。如果内容的URL为“google.com”,这会起作用吗?“(https?| ftp | file):\/\/”部分的限制可以修改为可选值哇,这真的很好,谢谢!它甚至适用于多次出现(我忘了提到)。谢谢你的片段!如果内容的URL为“google.com”,这会起作用吗?“(https?| ftp | file):\/\/”部分的限制可以修改为可选值哇,这真的很好,谢谢!它甚至适用于多次出现(我忘了提到)。谢谢你的片段!