Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何替换+;用javascript?_Javascript - Fatal编程技术网

如何替换+;用javascript?

如何替换+;用javascript?,javascript,Javascript,如何用unicode替换字符串中的字符“+” E.G. Before replace -> "table+end" After replace -> "table002Bend" 我试着用 tableName.replace(/+/g,"002B); 但是运行JS的浏览器抛出错误,声明: 无效标识符 如果在正则表达式中使用,则需要转义+。试着这样做: tableName.replace(/\+/g,"002B") unscaped加号与一个或多个量词匹配 注意,对于

如何用unicode替换字符串中的字符“+”

E.G.
  Before replace -> "table+end"
  After replace -> "table002Bend"
我试着用

  tableName.replace(/+/g,"002B);
但是运行JS的浏览器抛出错误,声明:

无效标识符


如果在正则表达式中使用,则需要转义
+
。试着这样做:

tableName.replace(/\+/g,"002B")
unscaped加号与一个或多个量词匹配


注意,对于这个简单的替换,您甚至不需要正则表达式。

使用正则表达式,
+
在正则表达式中有特殊含义,需要转义:

tableName = tableName.replace(/\+/g, '002B');
如果只是替换单个
+
,则不需要正则表达式:

tableName = tableName.replace('+', '002B');
但是,需要注意的是,它只会替换遇到的第一个
+
。进行“快速”全部替换的一种解决方法是将
split()
join()
组合起来:


两件事:
+
字符在正则表达式中有特殊的含义,如果您查看得到的错误:

语法错误:无效的正则表达式:/+/:无需重复

您可以看到,
+
实际上意味着:重复表达式前面的“部分”。可以使用反斜杠指定要替换文字
+
字符(
/\+/
),也可以创建一个字符类,其中不需要转义所有特殊字符:
/[+]/

之后,由于缺少字符串分隔符,您可能仍会显示错误:

tableName.replace(/+/g,"002B);//<--missing closing "

但是,如果您想要“url编码”字符串,为什么不简单地使用
encodeURI(tableName)

听起来好像您试图对字符串进行错误的url编码。不幸的是,如果没有正则表达式,它将只替换第一个
+
,而不是全部。这似乎比正则表达式替换(至少在chrome上)+1快得多。结尾的分号表示该行是独立语句。它不是-它只是一个表达式。它甚至可能是OP忘记分配这个表达式,例如
tableName=tableName.replace(…)(字符串值是不可变的,因此必须将
replace()
(新字符串值)的结果显式分配给变量)。
tableName.replace(/+/g,"002B);//<--missing closing "
tableName.replace(/\+/g,"002B");
tableName.replace(/[+]/g,"002B");