【问题标题】:fix/escape javascript escape character?修复/转义 javascript 转义字符?
【发布时间】:2010-12-07 18:45:41
【问题描述】:

请参阅this answer 了解为什么 / 被转义以及非特殊字符会发生什么

我有一个解析后看起来像这样的字符串。此字符串来自 javascript 行。

var="http:\/\/www.site.com\/user"

我抓住了报价的内部,所以我只有http:\/\/www.site.com\/user。我如何正确转义字符串?所以它的http://www.site.com/user?我正在使用 .NET

【问题讨论】:

  • 你的问题不清楚。您是否要求使用正则表达式进行字符串替换?替换是用 JavaScript 还是 .NET?
  • @epascarello:我要求一个函数可以正确地转义 http:\/\/ 这样的字符串。 ex escapeit(@"http:\/\/")

标签: javascript .net


【解决方案1】:

使用String.Replace() 方法:

string expr = @"http:\/\/www.site.com\/user";  // That's what you have.
expr = expr.Replace("\\/", "/");               // That's what you want.

那个,或者:

expr = expr.Replace(@"\/", "/");

请注意,以上内容不会将出现的\ 替换为空字符串,以防您必须支持包含其他合法反斜杠的字符串。如果没有,你可以写:

expr = expr.Replace("\\", "");

或者,如果您更喜欢常量而不是文字:

expr = expr.Replace("\\", String.Empty);

【讨论】:

  • 我编辑了我的问题。该字符串已经在一个字符串中。我没有从 js 复制/粘贴它,而是通过读取来自 js 文件的 db 解析它:x
【解决方案2】:

我不知道为什么它有 \ 因为var foo = "http://www.site.com/user"; 是一个有效的字符串。

如果 \ 字符出于某种奇怪的原因而存在,那么您需要将它们加倍

var foo = "http:\\/\\/www.site.com\\/user";

【讨论】:

  • 不不,我需要它走另一条路。我需要 \/ 成为 / 但我不想编写自己的 func bc 我不记得如何转义 js 脚本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 2015-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多