JS - 撇号 - 不会被取代

时间:2012-07-04 05:56:28

标签: javascript string

我在JS中使用撇号(“'”)遇到了这个问题。我正在使用encodeURIComponent()对其进行编码,然后将(')替换为(%27),如下所示。

var request = encodeURIComponent(requestString).replace(“'”,“%27”);

但如果撇号带括号,则撇号不会被替换。

ex:(“)'”)     ( “')”)     ( “(”“)

即使撇号后跟一个数字,它也不会被替换。

有解决方法吗?

提前致谢。

Nilushi

2 个答案:

答案 0 :(得分:3)

String.replace方法接受字符串或正则表达式作为其第一个参数。当字符串作为第一个参数传递时,只替换第一个匹配项:

"'''''".replace("'", "%27"); // "%27''''"

您应该使用正则表达式以及g标志;它取代了所有匹配:

"'''''".replace(/'/g, "%27"); // "%27%27%27%27%27"

答案 1 :(得分:1)

您需要指定/g全局修饰符:

var request = encodeURIComponent(requestString).replace(/'/g, "%27");

示例:

var str = "(''')";
var request = encodeURIComponent(str).replace(/'/g, "%27");
console.log(request); // (%27%27%27)