0

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

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

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

前任: (”)'”) (”')”) (”('”)

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

有解决方案吗?

提前致谢。

尼鲁士

4

2 回答 2

3

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

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

您应该使用正则表达式和g标志;替换所有匹配项:

"'''''".replace(/'/g, "%27"); // "%27%27%27%27%27"
于 2012-07-04T07:17:59.323 回答
1

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

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

例子:

var str = "(''')";
var request = encodeURIComponent(str).replace(/'/g, "%27");
console.log(request); // (%27%27%27)
于 2012-07-04T05:58:52.117 回答