将www
字符串中的所有http://www
转换为{I}我尝试过的
正则表达式:/^www(?!http\:\/\/|https\:\/\/)./g;
但它仅在任何字符或数字不在www之前时才起作用。例如:Find me at www.test.com
在这种情况下,它失败但它适用于www.google.com find me on this
。我不知道如何将条件放在常规exp中。
function mailify(text)
{
var regEx = /^www(?!http\:\/\/|https\:\/\/)/g;
return text.replace(regEx, "http://www");
}
console.log(mailify("www.ni@gmail.com"));
答案 0 :(得分:1)
你可以这样做:
return text.replace("www", "http://www");
答案 1 :(得分:0)
Nishant这很有帮助:
function mailify(text)
{
var regEx = /www/g;
return text.replace(regEx, "http://www");
}
console.log(mailify("www.google.com find me on this"));
答案 2 :(得分:0)
这是因为你的正则表达式以^
开头,这意味着你的表达式必须以www开头。试试这个:
/^.*www(?!http\:\/\/|https\:\/\/)./g;
答案 3 :(得分:0)
将前瞻放在www:
之前var regEx = /^(?!https?:\/\/)www/;
答案 4 :(得分:0)
您可以使用以下正则表达式:
/([^/]|^)(www)/g
代码:
var reg=/([^/]|^)(www)/g
var line="something www.some.com , http://some1.com"
console.log(line.replace(reg,"$1http://$2"))
输出:
"something http://www.some.com , http://some1.com"
<强> Demo 强>
说明:
答案 5 :(得分:0)
你可以试试这个:
function mailify(text)
{
var regEx = /\b(https?:\/\/)?www\./g;
return text.replace(regEx, 'http://www.');
}
console.log(mailify('www.yourlink.com notalinkwww.yourlink.com http://www.yourlink.comm'));
您还需要检查'www'后面是否有一个点,以确保它标记链接的开头。
如果您只想要链接可点击,则必须执行此操作:
function mailify(text)
{
var regEx = /\b((https?:\/\/)?www\.\S*)/g;
return text.replace(regEx, '<a href="$1">$1</a>');
}
答案 6 :(得分:0)
替换包含http://
或https
或ftp
或file
或仅www
或http://www
或https://www
的所有文字,其次是任何字符数字和特殊字符,甚至后面的空格都可以点击链接。
Reg Ex:
/(\b((https?|ftp|file):\/\/|(www))[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|]*)/ig
function UriphiMe(text) {
var exp = /(\b((https?|ftp|file):\/\/|(www))[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|]*)/ig;
return text.replace(exp,"<a href='$1'>$1</a>");
}
我已通过以下字符串进行测试:
注意:如果您不想将www
作为有效的传递,请使用以下reg ex:
/(\b((https?|ftp|file):\/\/|(www))[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig
参考:How to replace plain URLs with links?
如果reg ex失败,请添加评论,如果我错了请告诉我。