在逗号后添加空格到字符串

时间:2018-01-26 14:24:23

标签: javascript jquery

我有这个:

var $string = 'hello,world';

$(".content").text(function(i, $string) {
    return $string.replace(/,/g, ", ");
});

旨在在空格后添加逗号。我究竟做错了什么?问题可能是我在函数中使用变量。入门级的东西。

3 个答案:

答案 0 :(得分:2)

不要在匿名函数中包含参数,因为这会覆盖你的$ string值...正如@RoryMcCrossan所建议你不需要函数

var $string = 'hello,world';

$(".content").text($string.replace(/,/g, ", "));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="content"></div>

答案 1 :(得分:1)

为了您的理解,您的代码目前的工作方式如下:

var $anotherstring = 'hello,world';

$(".content").text(function(i, $string) {
    return $string.replace(/,/g, ", ");
});

(因为函数的内部变量参数与第一个不同,隐藏您使用相同名称定义的第一个$string

如果元素的当前文本值为“hello,world”

,则text使用内部function(i, $string)的方式将起作用

(参见jquery documentation

$(".content").text('hello,world'); // just to set the value of the .content element for the example, you can ignore this if this already the case

$(".content").text(function(i, $string) {
    return $string.replace(/,/g, ", ");
});

因此,如果您想转换现有内容,上述代码将有效。

如果您只想使用另一个变量的值,而不是.content元素的旧内容,则可以执行以下操作:

var $string = 'hello,world';

$(".content").text($string.replace(/,/g, ", "))

答案 2 :(得分:0)

<块引用>

试试这个方法

let $str = 'hello,world';
$(".content").text($str.replace(/,[s]*/g, ", "));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="content"></div>