【问题标题】:Correct way to work with strings that contain "special symbols"?使用包含“特殊符号”的字符串的正确方法?
【发布时间】:2014-07-16 13:31:21
【问题描述】:

如何处理包含通常用作特殊符号对的字符串。我知道筛选'\'。但是如果我从输入值中得到一个值呢?为什么解析值有不同的规则?

  el1:<input id="el1" value="C:\files\Input Dir\fileName.txt">
  <br />
  el2:<input id="el2" value="">
   <br />
  el3:<input id="el3" value="">

在这里我们可以找到不同之处

var el1 = document.getElementById('el1');
var el2 = document.getElementById('el2');
var el3 = document.getElementById('el3');

var val1 = el1.value;
var val2 = "C:\files\Input Dir\fileName.txt";

console.log(val1);
console.log(val2);
console.log(val1 == val2);

el2.value = val1;
el3.value = val2;

您可以在http://jsbin.com/lucurowo/1/edit查看此案例

为什么当我从 'штезге' 获得价值时,没有筛选 \f ,并且 '\f' 理解为字符串而不是换页标记?

【问题讨论】:

    标签: javascript string special-characters


    【解决方案1】:

    这不是你从 el1 得到的。这是对的。这是您与 (val2) 不正确的比较。您需要转义转义字符 \。

    所以你的代码应该是:

    var val2 = "C:\\files\\Input Dir\\fileName.txt";
    

    【讨论】:

    • 如果您通过某种服务器端语言Node.jsPHP 或类似的语言生成 HTML,它将有一个可以正确转义 HTML 的库。不仅是这些章程,还有许多其他章程。
    • 我知道。问题是关于从输入中获取代码 - 有什么区别? (你看到 jsbin 的例子了吗?)
    • 我确实在 jsbin 看到了这个例子。如果你修复 val2 线,问题就会消失
    • 问题不在于值之间的差异。我可以解释一下。我不明白为什么我从没有转义特殊符号的输入中获得价值 - 以获得正确的形式
    • 在最后一行中,您将未转义的字符串放入元素中:el3.value = val2;这就是为什么它没有达到你期望的结果
    猜你喜欢
    • 1970-01-01
    • 2020-12-25
    • 2015-08-16
    • 2020-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多