使用JavaScript删除非法URL字符

使用JavaScript删除非法URL字符,javascript,jquery,Javascript,Jquery,我有一个充满字符串的数组,例如一个值可以是“notupdatefor>days”。我使用数组中的值创建一些url,需要删除/\和其他非法url字符。我该怎么做 我从 var Name0 = title[0].substring(1).replace(" ", "%20").replace("/", "") + '.aspx'; var Name1 = title[1].substring(1).replace(" ", "%20").replace("/", "") + '.aspx'; and

我有一个充满字符串的数组,例如一个值可以是“notupdatefor>days”。我使用数组中的值创建一些url,需要删除/\和其他非法url字符。我该怎么做

我从

var Name0 = title[0].substring(1).replace(" ", "%20").replace("/", "") + '.aspx';
var Name1 = title[1].substring(1).replace(" ", "%20").replace("/", "") + '.aspx';
and so on but can I do this in a better way?
提前感谢。

您可以使用该函数对值进行正确的URL编码。

您看过了吗

示例用法

var encoded = window.encodeURIComponent("http://stackoverflow.com/questions/3486625/remove-illegal-url-characters-with-javascript/3486631#3486631");

// encoded contains "http%3A%2F%2Fstackoverflow.com%2Fquestions%2F3486625%2Fremove-illegal-url-characters-with-javascript%2F3486631%233486631"

如果希望将符号保留在URI中,但对其进行编码:

encodedURI = encodeURIComponent(crappyURI);
如果您希望构建“友好”URI,如博客上的URI:

niceURI = crappyURI.replace(/[^a-zA-Z0-9-_]/g, '');

唯一的出路。(除非OP的目的是实际删除有问题的字符以构建美观的URL)。我只想删除它们,如.replace(“/”,“”),但我想知道是否有比像我的第一个示例那样在数组中的每个项上都有大量.replace()更简单的方法。只需将所有符号聚集在一个:
.replace>中即可(/[此处为坏符号]/g',”)
或者,删除除白名单以外的所有内容:
。替换([^此处为好符号]/g',)