我正在尝试对Javascript中的文本变量进行一些基本的字符串操作。我有几行代码看起来像这样:
var someVar = 'first+last@domain.com';
var cleanVar = someVar.replace('@','_').replace('+','_');
当我在Chrome的Javascript控制台中运行此代码时,cleanVar
的值为first_last_domain.com
...这是预期的。当此代码在浏览器的实时页面上运行时,replace()
始终适用于@
字符,但永远不适用于+
。
为了调试这个,我尝试用.replace('@','_')
交换.replace('+','_')
的位置,甚至将这样的事情弄清楚:
var someVar = 'first+last@domain.com';
var cleanVar = someVar.replace('@','_');
var cleanVar2 = cleanVar.replace('+','_');
我肯定在这里遗漏了一些不成熟的东西。我知道+
在Javascript中组合了字符串...但是当被引号括起来时没有,对吗?
答案 0 :(得分:-1)
这个正则表达式方法对我有用:
var cleanVar = someVar.replace(/[+@]/g,'_');
(之前由某人发布,然后删除)
如评论者所述,这将替换@
和+
的所有实例。移除g
仅定位到第一个@
或+
。