javascript - 使用 Javascript/jQuery 转义和取消转义反斜杠

标签 javascript jquery backslash

这是测试用例

  • \\192.168.100.1\文件夹名\文件名
  • actividirectoryName\用户名
  • 其他\文本\还有这个
  • \

如何转义这些字符串并再次取消转义。

我尝试了这样的"mystring\something".replace(/[\\]/g, '\\\\'); 但当我有像 "name\b"或 "text\n"或 "text\t"这样的字符串时,它确实发送了工作

因为这些是制表符、换行符和其他键的保留键。 处理这个问题的最佳方法是什么

更新: 即使在此编辑中,我也必须写 3 个反斜杠才能向您显示两个反斜杠?当我第一次写 2 个反斜杠时,它只显示 1 个反斜杠

最佳答案

取决于您想要如何解决这个问题取决于这些字符串的存储位置。

只有两种方法可以处理这个问题,这两种方法都需要在使用变量之前将它们存储在其他位置。

如果您使用 php,则可以使用 Raw。如果您正在执行 ajax 请求或将值加载到 DOM 中,您可以使用 javascript 来获取这些值,并且它们将用 baskslashes 保存。

var text = document.getElementById('id');
var a = document.getElementById('v').value;
var b = String.raw `${a}`
var c = String.raw `\\192.168.100.1\foldername\filename`
var d = '\\192.168.100.1\foldername\filename'
var test = [
  d + ' - in JavaScript',
  c + ' - in raw',
  a + ' - in HTML',
  b + ' - in raw variable'
];
for (var i = 0, l = test.length; i < l; i++) {
  text.value += test[i] + '\n';
}
textarea {
  width: 100%;
}
<input id='v' value='\\192.168.100.1\foldername\filename' type='hidden' />
<textarea rows='10' id='id'></textarea>

要使用 php 和 raw,它看起来像这样

String.raw`<?=$variable?>`

编辑一旦获得原始数据,您就可以开始使用 REGEX 和其他转义手段。

var c = String.raw `\\192.168.100.1\foldername\filename<\/p>`
var text2 = document.getElementById('id2');
text2.value = (c + '').replace('\\\\', '\\').replace('\\/', '/');
textarea {
  width: 100%;
}
<textarea rows='10' id='id2'></textarea>

关于javascript - 使用 Javascript/jQuery 转义和取消转义反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36574378/

相关文章:

javascript - 使用 Javascript 将行添加到 Google 电子表格

javascript - 如何拦截来自 Google Chrome 扩展程序的代理身份验证对话框?

javascript - 如何防止其元素内的链接默认?

python - 将从 os.walk 接收到的路径放入 cmd 中以在 Windows 终端上运行 - python

c++ - 在 Qt 中将 `\oct` 转换为 `char`

javascript - 用户单击提交后如何从表中删除行/永久禁用提交按钮

javascript - 输入字段标记验证以 C 或 G 开头

javascript - 确保两个项目是 JS/jQuery 中的 sibling

javascript - 如何使用Jquery获取ID?

python - 如何解码 python 中的反斜杠转义字符串?