首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Javascript中转义双连字符?

在Javascript中转义双连字符?
EN

Stack Overflow用户
提问于 2009-06-17 04:23:05
回答 4查看 2.2K关注 0票数 4

我有一个Javascript书签小程序,当单击它时,它会将用户重定向到新网页,并在查询字符串中提供旧网页的URL作为参数。

当原始网页的URL中有双连字符时,我遇到了一个问题(例如:page--1--of--3.html)。愚蠢,我知道-我不能控制原始页面我正在使用的javascript escape函数不能转义连字符,如果请求提供resource.aspx?original=page--1--of--3.html,IIS6会给出文件未找到错误

有没有其他的javascript转义函数可以使用?解决这个问题的最佳方法是什么?有人知道为什么IIS在resource.aspx?original=page--1上阻塞而不是page-1吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-06-17 04:30:13

你能用一些自定义的逻辑来扩展转义函数来手动编码这个假设吗?

代码语言:javascript
复制
resource.aspx?original=page%2d%2d1%2d%2dof%2d%2d3.html

如下所示:

代码语言:javascript
复制
function customEscape(url) {
    url = escape(url);
    url = url.replace(/-/g, '%2d');
    return url;
}

location.href = customEscape("resource.axd?original=test--page.html");  

书签更新,适用于

代码语言:javascript
复制
<a href="javascript:location.href=escape('resource.axd?original=test--page.html').replace(/-/g, '%2d')">Link</a>
票数 2
EN

Stack Overflow用户

发布于 2009-06-17 05:22:48

“转义”和“不转义”不被推荐使用,因为它没有对所有相关字符进行编码。请勿使用ESCAPE或UNESCAPE。请改用"encodeURIComponent“和"decodeURIComponent”。除了最老、最破旧的浏览器之外,所有浏览器都支持。这真是一个巨大的耻辱,这种知识并不是很普遍。

(另请参阅encodeURI和decodeURI)

编辑: err刚刚测试过,但这并不能真正涵盖双连字符。抱歉的。

票数 4
EN

Stack Overflow用户

发布于 2009-06-17 04:32:11

你还做错了什么。--在URL和文件名中是合法的。也许真的找不到这个文件?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1005108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档