用破折号JavaScript替换空间

rur*_*uru 6 javascript

var html = "<div>"+title+"<br/>";
document.write(title.replace(/ /g,"-"));
html+= '<p><a href="go.aspx?title=' + title + '">Details<\/a></p></div>';
Run Code Online (Sandbox Code Playgroud)

我想用破折号替换标题空间.

ehd*_*hdv 13

试试吧title.replace(/\s/g , "-").(/\s/是空格的正则表达式转义).

另外,做:

title = title.replace(/\s/g , "-");
var html = "<div>" + title + "</div>";
// ...
Run Code Online (Sandbox Code Playgroud)


Riv*_*ver 8

我发现替换函数中常用的正则表达式非常难以阅读 - 而且很容易忘记不引用您正在搜索的字符串或省略 /g 以指示全局替换。对于做一些简单的事情,比如用破折号替换空格,使用更容易理解的“split”和“join”同样快。

alert("this is a test".split(" ").join("-"));
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/n0u3aw5c/


Ode*_*ded 5

调用title.replace不会更改标题,而是返回已替换值的字符串.您需要使用返回的值:

var html = "<div>"+title+"<br/>";
var newTitle = document.write(title.replace(/ /g,"-"));
html+= '<p><a href="go.aspx?title=' + newTitle + '">Details<\/a></p></div>';
Run Code Online (Sandbox Code Playgroud)

正则表达式很好,但只会替换空格而不是所有空格.