Javascript 正在检查文本区域中的链接并将其更改为超链接
这里有一个函数:Javascript 正在检查文本区域中的链接并将其更改为超链接,javascript,Javascript,这里有一个函数: function ShowMessage() { var themessege = document.getElementById("Form").textarea1.value; var dat = new Date(); var fileName = document.getElementById("theFile").value; var image = '<img src="' + fileName + '"/>' + '<b
function ShowMessage()
{
var themessege = document.getElementById("Form").textarea1.value;
var dat = new Date();
var fileName = document.getElementById("theFile").value;
var image = '<img src="' + fileName + '"/>' + '<br>';
document.getElementById("Form").textarea1.value = "";
document.getElementById("Form").countdown.value = "160";
document.getElementById("theFile").value = "";
if (themessege==null || themessege=="")
{
alert("There is no text to submit, please fill out the text box");
return false;
}
document.getElementById("blog").innerHTML = document.getElementById("blog").innerHTML + image + "Guest post: " + themessege + "<br />" + dat +"<br />";
}
函数ShowMessage()
{
var themessege=document.getElementById(“表单”).textarea1.value;
var dat=新日期();
var fileName=document.getElementById(“theFile”).value;
var image=''+'
';
document.getElementById(“表单”).textarea1.value=“”;
document.getElementById(“表单”).countdown.value=“160”;
document.getElementById(“theFile”).value=“”;
如果(themessege==null | | themessege==“”)
{
警告(“没有要提交的文本,请填写文本框”);
返回false;
}
document.getElementById(“blog”).innerHTML=document.getElementById(“blog”).innerHTML+image+“来宾帖子:“+themessege+”
“+dat+”
”;
}
我可以从文本区域获取文本,以及用户上传的图像。我想知道如何将文本区域中的字符串划分为子字符串,以检查它们是否以“www”或“htt”开头
这是我到目前为止写的:
function linkify(inputText) {
var replaceText, replacePattern1, replacePattern2;
//URLs starting with http://, https://
replacePattern1 =https;
replacedText = inputText.replace(replacePattern1, '<a href= ></a>');
//URLs starting with "www." (without // before it, or it'd re-link the ones done above).
replacePattern2 = www.;
replacedText = replacedText.replace(replacePattern2, <a href="http: ></a>');
var x = getelementbyid("blog");
for(var i = 0;i < x.length;i++){
if(blog.charAt(i) == replacePattern1){
return replacedText;
}
}
else if(blog.charAt(i) == replacePattern2){
return replacedText;
}
}
函数链接(inputText){
变量replaceText、replacePattern1、replacePattern2;
//以http://,https://
replacePattern1=https;
replacedText=inputText.replace(replacePattern1',);
//以“www.”开头的URL(前面没有//或它会重新链接上面的内容)。
替换模式2=www。;
replacedText=replacedText.replace(replacePattern2’);
var x=getelementbyid(“博客”);
对于(变量i=0;i
我知道字符(I)
只检查1个字母
我找到的大多数答案都是在PHP上找到的,我正在尝试使用JavaScript找到解决方案。您的linkify函数完全错误。所有变量都包含对不存在的变量的引用!在它们周围加引号,使它们成为字符串 这意味着什么代码>做什么 说输入文本是'https://example.com'并假设您更正了变量,因此
replacePattern1==='https'
找到https并将其替换为。最终产品是什么样子的
replacedText==='://example.com'代码>
第二种替换模式也会发生同样的情况
此外,没有什么比getelementbyid更好的了。是的。JavaScript区分大小写。它返回一个id为的元素,因此不能循环使用它
请在编写JavaScript代码之前先学习JavaScript。另外,请阅读道格拉斯·克罗克福德的文章
回答您的问题,以下是您应该使用的代码:
string.replace(/(https?:\/\/[^\s]+)/g, "<a href='$1'>$1</a>")
string.replace(/(https?:\/\/[^\s]+)/g,“”)
https?
表示http或https。[^\s]+
表示除空白字符以外的任何字符。$1
表示整个匹配的URL。
这将允许https和http URL包含字母和数字,并将URL转换为链接
链接功能编写不正确。试试这个
function linkify(inputText) {
var regUrl = /(http:[\d]{0,4}\/\/)?[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)/;
return inputText.replace(regUrl,'<a href="" />');
}
;
alert(linkify('string containing link www.google.com'));// output: string containing link <a href="" />
函数链接(inputText){
var regUrl=/(http:[\d]{0,4}\/\/)?[a-zA-Z0-9\-\.]+\(com | org | net | mil | edu | com | org | net | mil edu)/;
返回inputText.replace(regUrl.);
}
;
警报(linkify('string containing link www.google.com');//输出:包含链接的字符串
你的函数只是用函数名替换了链接,我不相信这是他想要的。我相信他希望它成为一个可点击的超链接。谢谢,我正在努力学习JavaScript,我的页面运行良好,谢谢你的可点击链接,但是,有没有一种方法可以将文本区域内的字符串转换为子字符串,以便添加if语句来替换以www和http/https开头的字符串?这是我的主要问题…我不明白你想说什么。请举个例子?好的,我有一个测试,用户在输入随机文本时,他会输入一个链接,例如www.google.com或其他什么,当他点击提交链接时,www.google.com显示为普通文本,而不是可点击的链接,我正在试图找出一种在文本区域循环文本的方法,找到以“www”或“hhtp”开头的文本,并将整个文本转换为可点击链接。我希望将其清除。是否希望文本区域中的所有文本都可点击?不,只需以http或www开头的文本,换句话说,只需URL链接