在javascript中使用正则表达式省略数字符号无效

时间:2011-08-27 11:41:40

标签: javascript regex

我在.js文件中编写了一个简单的代码(在Zend框架中,但我不认为这很重要)

var location = "localhost:8080/mymodule/id/1#";
location.replace(/\#/g, "");
alert(location.valueOf());
return;

但我不知道为什么我看不到我想要的结果。 我得到我的页面网址,并希望省略所有数字标记。但上面的代码什么也没做。 请帮忙

3 个答案:

答案 0 :(得分:6)

location是一个用于变量的错误名称,因为它与用于实际浏览器页面位置的window.location变量发生冲突。

如果您在上述代码中将location更改为loc,然后在loc =来电之前添加loc.replace()(因为replace()没有'修改输入,但改为返回新版本),你的代码可以工作。

答案 1 :(得分:6)

replace不会更改原始字符串的值,您需要将结果分配给新变量 -

var newString = location.replace(/#/g, "");
alert(newString);

演示 - http://jsfiddle.net/5H5uZ/

答案 2 :(得分:2)

可以在一行中完成。这是你要找的结果吗?

alert("localhost:8080/mymodule/id/1#".replace(/#/g,'')); 
  //=> alerts 'localhost:8080/mymodule/id/1'