在通过Neo4J中的Cypher添加语句之前摆脱/转义不需要的符号

我需要摆脱不必要的符号,例如多个空格,前导和尾随空格,以及转义单引号和双引号以及可能在我的Neo4J Cypher查询中出现问题的其他字符。

我目前使用这个( string.js节点模块和jsesc节点模块)

result = S(result).trim().collapseWhitespace().s; result = jsesc(result, { 'quotes': 'double' }); 

他们工作得很好,但是,

1)我想find一个更好,更简单的方法来做到这一点(最好没有这些库);

2)当我使用其他编码(例如俄文)时,jsesc似乎将其转换为其他编码,而不是UTF-8,我的脚本的其他部分不理解。

所以我想问你是否可以推荐一个RegExp来完成上面的工作,而不必使用这些模块。

谢谢!

我有一系列的正则expression式replace调用,它们可以完成你似乎在寻找的东西,或者至less是你提到的问题。 我把你提到的几个项目放在一起testingstring。

 var testString = ' I start with \"unwanted items and" end with a space". Also I have Quotes '; var cleanedString = testString.replace(/\s\s+/g, ' ').replace(/^\s|\s$/g, '').replace(/([^\\])(['"])/g, "$1\\$2"); console.log(cleanedString); 

这将逃避尚未逃脱的引号(单或双),但是您将不得不担心该项目前面有逃逸符号的情况。 例如“\\”不会变成\\\“,因为它应该是。 如果你想逃避更多的字符,你只需要将它们添加到最后的.replace正则expression式。 让我知道是否有你正在寻找的具体例子。