【问题标题】:How to save / add all special characters like ( " & ' ) ETC如何保存/添加所有特殊字符,如 (" & ') ETC
【发布时间】:2016-09-26 03:08:08
【问题描述】:

特殊字符

! @ # $ % ^ & * ( ) _ + = - { [ } ] : ; " ' | \ < , > . ? /

我有一个简单的数据保存。我注意到,如果我在文本框中输入所有特殊字符而不使用 escape 方法,则 & 符号之后的所有特殊字符都会被剪切。

没有 Escpae

输出

! @ # $ % ^

带逃生

Here

JS

var txt = $("txtbox").val();

请注意,输出有一个%20% 我如何删除它?。

【问题讨论】:

  • 你正在做的“简单的数据保存”是什么?您是否将此字符串用作 URL 的一部分?在这种情况下,是的,因为& 是 URL 中的保留字符,您需要对其进行转义(使用encodeURIComponent)。是的,逃逸也会逃逸空间。通常,这将在服务器上自动正确解码,因此您不必担心。
  • @torazaburo 简单的保存就像.. Data = A & "B" 类似数据的东西
  • 所以“保存”是指存储到变量中?那是什么样的语法?它看起来不像 JavaScript。这个语句中的“A”是什么?其中哪一部分对应文本框中的值?
  • @torazaburo 抱歉,如果您不理解。 var txtboxvalue = $("#txtboxID").val(); ----- the value is A & "B" 这就是为什么我问我如何保存特殊字符.. 但是现在可以解决了。

标签: javascript


【解决方案1】:

%20 是空格。如果你想删除它,你可以这样做,

注意escape 已弃用,请改用encodeURIComponent

var str = `! @ # $ % ^ & * ( ) _ + = - { [ } ] : ; " ' | \ < , > . ? /`;
var encoded = encodeURIComponent(str.split(' ').join(''));
// or encodeURIComponent(str.replace(/\s+/g, ''));
alert(encoded);

这是你的fiddle

【讨论】:

  • 如果我使用你的方法,mvc3 控制器可以读取所有输入的特殊字符吗?
  • @KiYu 在 ASP.Net 中,您应该能够使用 HttpServerUtility.UrlDecode 在控制器或视图级别解析它。我已经有一段时间没有使用asp.net了。但我相信他们会有自己的输入和输出编码器和解码器。
  • 感谢您的解决方案,感谢接受的答案Here 解码 uri。
  • 如果escape 已被弃用而encodeURIComponent 更受青睐,则将其放在您的答案中,而不是作为注释。但是你没有回答基本的问题,那就是当用户不厌其烦地在文本框中输入空格时,为什么他不想传递空格?
  • @torazaburo 知道了。对于空格,我假设 OP 不键入值,而是从其他地方获取它,例如 xhr 获取或从文档元素值读取它?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-29
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
  • 1970-01-01
  • 2020-12-11
相关资源
最近更新 更多