JavaScript中的反斜杠错误

时间:2017-04-12 05:36:08

标签: javascript arrays multidimensional-array

我的string涉及棘手的\\字符。

下面是初始代码,以及我真正试图实现的内容,但它无法正常工作。我必须替换\"个字符,但我认为这就是错误所在。

var current = csvArray[0][i].Replace("\"", "");

我已尝试过下面的变体,但它仍然无效。

var current = csvArray[0][i].Replace('\"', '');

目前正在抛出Uncaught TypeError: csvArray[0][i].Replace is not a function

Javascript是否可以像string ("\"")一样采用我的C# 字面?请帮我调查一下。谢谢!

1 个答案:

答案 0 :(得分:1)

如果要匹配的序列是单个反斜杠字符后跟引号,则需要转义反斜杠本身,因为反斜杠在字符串文字中具有特殊含义。然后,您需要使用自己的反斜杠单独转义引号:

.replace("\\\"", "")

我相信在C#中也是如此。

或者你可以通过在字符串周围使用单引号来简化它,这样只需要转义反斜杠:

.replace('\\"', '')

但是,如果.replace()的第一个参数是一个字符串,它只会替换第一个匹配项。要进行全局替换,必须使用带有g标志的正则表达式,注意反斜杠也需要在正则表达式中进行转义:

.replace(/\\"/g, '')

我不打算设置一个演示阵列来完全匹配你的代码,但这里是一个简单的演示,你可以看到输入字符串中的单独反斜杠或引号没有被替换,但所有反斜杠-quote组合被替换:



var input = 'Some\\ test" \\" text \\" for demo \\"'
var output = input.replace(/\\"/g, '')
console.log(input)
console.log(output)