为什么这个简单的javascript替换不会将破折号更改为斜线?

时间:2012-03-06 16:30:31

标签: javascript jquery

我有这个HTML元素:

<div id='4-12-2012' class='date'>blah blah blah</div>

我将点击事件绑定到.date,所以当点击它时,会调用一个函数。我的目标是以斜杠而不是破折号结束日期(来自ID):

d = $(this).attr('id').replace('/-/g', '/');
alert(d);

这可能不是那么简单......但是使用alert()显示的结果仍然有破折号,“4-12-2012”......我在这里错过了什么完全显而易见的事情?! : - )

4 个答案:

答案 0 :(得分:7)

您的问题的答案已经发布,但在旁注中,我认为没有理由在这种情况下使用jquery。它正在做的就是调用不需要的函数

试试这个

d = this.id.replace(/-/g, '/');

这是测试的一个很好的参考:

http://jsperf.com/el-attr-id-vs-el-id/7

编辑:忘记删除刻度线

答案 1 :(得分:5)

试试这个:

删除正则表达式周围的'

d = $(this).attr('id').replace(/-/g, '/');

答案 2 :(得分:2)

简单正则表达式,as seen on this jsfiddle

d = $(this).attr('id').replace(/-/g, '/')

答案 3 :(得分:2)

不要将正则表达式放在引号中:

d = $(this).attr('id').replace(/-/g, '/');