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