Javascript .replace()在控制台和实时环境中的功能不同
Javascript .replace() functioning differently in console vs. live
我试图在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中组合字符串…但不是用引号括起来的,对吧?
这个正则表达式方法为我工作:
var cleanVar = someVar.replace(/[+@]/g,'_');
(由某人早些时候发布,然后删除)
正如一位评论者所指出的,这将替换@
和+
的所有实例。删除g
,只针对第一个@
或+
。
相关文章:
- 添加文字和评论功能更新Div
- JavaScript打印功能使日历停止工作
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 如何防止网页加载后自动启动功能
- 除修剪外的其他功能
- 悬停功能触发器
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 难以访问的JS环境中的语法错误
- 删除CKEditor工具栏按钮,但不删除功能
- 异步facebook功能
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- jQuery滚动功能只工作一次
- Graphiti中是否有任何工具提示功能
- React redux初始化功能,无论状态变化如何
- 在哪里可以学习ECMAScript标准中尚未包含的JavaScript功能
- 正在获取select上的功能id
- Rhino打印功能
- 在浏览器环境之外充分实现WebGL兼容性所需的最小功能是什么?
- 无法在跨域环境中访问JS功能
- Javascript .replace()在控制台和实时环境中的功能不同