我的代码将从某个地方的API中提取一个字符串并将其返回到Discord频道。为了保持输出清洁,我需要使用"<"和">"符号。
我最初使用split()函数完成此操作,查找以" http"开头的空格和字符串。但是,当一个字符串保存它时,这种情况就会失败,例如:
var string = "I am a string (http://google.com)";
那么我有没有办法扫描整个字符串来查找和修改这些网址?
为清楚起见,我正在寻找:
var string = "http://google.com"
//to become
var string = "<http://google.com>"
这也必须与&#34; https&#34;。
一起使用非常感谢您对此事的任何帮助!
答案 0 :(得分:2)
您可以使用正则表达式在字符串中查找网址,然后将其替换为<
和>
。深入解决方案可以通过@Crescent Fresh找到here
var string = "I am a string (http://google.com)";
function url(text) {
var urlRegex =/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
return text.replace(urlRegex, function(url) {
return '<' + url + '>';
});
}
console.log(url(string));
&#13;
答案 1 :(得分:1)
只是@Ivan回答的补充
您可以使用regx和replace()函数
var string = "I am a string (http://google.com)";
var output = string.replace(/(https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*))/,"<$1>");
console.log(output);
希望这会有所帮助
答案 2 :(得分:0)
查找http://的索引,然后结束将是第一次遇到非url-allowed字符(空格,非字母数字,/,。,#等异常)。 / p>
这将是最常用的启动方式,但可以在监控您使用它的链接时进行优化。