Javascript .replace()在控制台与直播中的功能不同

时间:2015-08-17 17:00:12

标签: javascript string

我正在尝试对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中组合了字符串...但是当被引号括起来时没有,对吗?

1 个答案:

答案 0 :(得分:-1)

这个正则表达式方法对我有用:

var cleanVar = someVar.replace(/[+@]/g,'_');

之前由某人发布,然后删除

如评论者所述,这将替换@+的所有实例。移除g仅定位到第一个@+