我的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#
字面?请帮我调查一下。谢谢!
答案 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)