Javascript 用于检测不带http或www的URL的正则表达式
当用户在文本区域中键入内容时,我试图检测URL并将其替换为超链接。我正在尝试使用正则表达式测试URL的字符串:Javascript 用于检测不带http或www的URL的正则表达式,javascript,jquery,regex,Javascript,Jquery,Regex,当用户在文本区域中键入内容时,我试图检测URL并将其替换为超链接。我正在尝试使用正则表达式测试URL的字符串: var text='gggg.com/gd/'; var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; var text1=text.replace(exp, "<a href='$1'>$1</a>"); var exp2
var text='gggg.com/gd/';
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
var text1=text.replace(exp, "<a href='$1'>$1</a>");
var exp2 =/(^|[^\/])(www\.[\S]+(\b|$))/gim;
var finalText=text1.replace(exp2, '$1<a target="_blank" href="http://$2">$2</a>');
alert(finalText);
var text='gggg.com/gd/';
var exp=/(\b(https?| ftp |文件):\/\/[-A-Z0-9+&@#\/%?=~~|!:,.;]*[-A-Z0-9+&@#\/%=~|]/ig;
var text1=text.replace(exp,“”);
var exp2=/(^.[^\/])(www\.[\S]+(\b\$)/gim;
var finalText=text1.replace(exp2,$1');
警报(finalText);
它适用于带有参数且不带http的ot的URL,但无法识别不带http和www的URL,例如abc.com或anc.com/fgdg/dgd或abc.com?lklkj=kjhkjh
更新
根据以下人员的评论和回答:
var text='gggg.com?klk=efhjsk';
变量表达式2='^([a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+*)$;
变量模式1=/^([a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+*)$/;
if(pattern1.test(text)和&text.substr(0,3)!='www'){
var finalText=“”;
}否则{
var exp=/(\b(https?| ftp |文件):\/\/[-A-Z0-9+&@#\/%?=~~|!:,.;]*[-A-Z0-9+&@#\/%=~|]/ig;
var text1=text.replace(exp,“”);
var exp2=/(^.[^\/])(www\.[\S]+(\b\$)/gim;
var finalText=text1.replace(exp2,$1');
}
警报(finalText);
试试这个
^([a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+.*)$
试试这个
^([a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+.*)$
因为正则表达式要求它在那里,所以需要将该部分设置为有条件的。因此,我应该首先检查模式abc.xyz,如果没有,则检查其余模式?因为正则表达式要求它在那里,所以需要将该部分设置为有条件的。因此,我应该首先检查模式abc.xyz,如果没有,那么剩下的模式?以下正则表达式将使http://,https://,ftp://和www.optional@^((http://;https://;ftp://)和www.optional@^((www.a-zA-Z0-9)+(\.[a-zA-Z]+)。”以下正则表达式将使http://,https://,ftp://和www.optional@^((http://;https://;ftp://)和www.optional@((www