使用javascript从URL字符串中删除特定事件

时间:2016-02-12 05:40:23

标签: javascript java jquery regex xss

我有一个网址

http://www.example.com/" onmouseover="alert('howdy')

在此网址中,我想删除所有活动,例如onmouseroveronmouseclick等。

我尝试使用以下代码从URL中提取String

function UrlExtract(Url) {

var pattern = new RegExp(/(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[-A-Z0-9+&@#\/%=~_|$?!:,.])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[A-Z0-9+&@#\/%=~_|$])/igm);
Url = String(Url).match(pattern);
return Url;
}

我想要的是用户指定要从Url字符串中删除哪些事件,并且只删除那些事件。 请帮帮我。

1 个答案:

答案 0 :(得分:0)

检查以下代码

var url = "example.com/; onmouseover=alert('howdy');onclick=alert('click'); onmouseout=alert('out')"
function removeString(originalStr, strArr) {
    if(strArr.constructor === Array) {
       for(var i = 0; i < strArr.length; i++) {
          originalStr = originalStr.replace(strArr[i], '');
       }
    }
    return oriStr;
}
console.log(removeString(url, [" onclick=alert('click');", " onmouseover=alert('howdy');"]));
//output: "example.com/; onmouseout=alert('out')"