通过javascript注入HTML脚本

通过javascript注入HTML脚本,javascript,jquery,html,Javascript,Jquery,Html,我有一个文本字段,用户可以在其中填写href标记脚本,稍后我必须将其显示为链接。但是,您可以输入一些恶意脚本,例如警报消息,以及更类似的脚本,这些脚本将导致在我使用该文本字段值显示的位置执行不需要的脚本。 我的问题是,如何限制用户只在文本字段中输入href标记相关条目,并限制其他脚本输入。 提前感谢。使用正则表达式 var urlmatch= /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[

我有一个文本字段,用户可以在其中填写href标记脚本,稍后我必须将其显示为链接。但是,您可以输入一些恶意脚本,例如警报消息,以及更类似的脚本,这些脚本将导致在我使用该文本字段值显示的位置执行不需要的脚本。 我的问题是,如何限制用户只在文本字段中输入href标记相关条目,并限制其他脚本输入。 提前感谢。

使用正则表达式

var urlmatch= /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/;
var textboxValue = textbox.value;
if(textboxValue.match(urlmatch)){
// return true
} else {

// return false;
}
使用正则表达式

var urlmatch= /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/;
var textboxValue = textbox.value;
if(textboxValue.match(urlmatch)){
// return true
} else {

// return false;
}


您需要检查字符串是否为url,如果其url接受或拒绝。。下面的链接将有助于你的事业

您需要检查字符串是否为url,如果其url接受或拒绝。。下面的链接将有助于你的事业

更具体地显示您的代码。添加服务器端验证此答案将有所帮助:请更具体地说明正则表达式可以解决您的问题。这可以帮助您:更具体地显示您的代码。添加服务器端验证此答案将有帮助:请更具体正则表达式可以解决您的问题。这可以帮助您:这是一个非常好的正则表达式模式,但还有一个问题,我也必须接受带有href string的简单字符串,并且此表达式忽略简单字符串:(也就是说,我只需要两件事,href包含的脚本或任何非HTML恶意脚本的字符串:(因此,当它与regexp不匹配时(在您的情况下,它将是脚本),它将返回false…感谢CodeJack,我使用了您的regex和$(variable_name).text()防止在注入的脚本上执行的概念,并根据您的正则表达式使超链接按原样显示。这是非常好的正则表达式模式,但还有一个问题,我也必须接受带有href string的简单字符串,并且此表达式忽略简单字符串:(也就是说,我只想要两件事,要么href包含脚本,要么任何不是HTML恶意脚本的字符串:(因此,当它与regexp不匹配时(在您的情况下,它将是脚本),它将返回false…感谢CodeJack,我使用了您的regex和$(变量名称)。text()防止在注入的脚本上执行的概念,并根据您的正则表达式使超链接按原样显示。但实际情况是只传递简单字符串。我必须接收包含HREF的脚本或简单字符串(任何字符、字母表、符号的组合,但不是html脚本)。但实际情况是只传递了简单字符串。我必须接收包含HREF的脚本或简单字符串(任何字符、字母表、符号的组合,但不是html脚本)。