Javascript用空格替换连字符

时间:2011-06-04 01:28:33

标签: javascript

我从DatePicker

获取此值
var datepickr = 'Jun-29-2011';

我想用空格替换下划线( - )。

我试过这种方式,但它无法正常工作

var b = datepickr.replace("-",' ');

6 个答案:

答案 0 :(得分:3)

仅供参考:

var datepickr = 'Jun-29-2011';
datepickr.replace("-",  " ");  // returns "Jun 29-2011"
datepickr.replace(/-/,  " ");  // returns "Jun 29-2011"
datepickr.replace(/-/g, " ");  // returns "Jun 29 2011" (yay!)

不同之处在于全局修饰符/g,它会导致替换搜索所有实例。另请注意,-必须转义为\-,当它也可用于表示范围时。例如,/[a-z]/g将匹配所有小写字母,而/[a\-z]/g将匹配所有的's,z'和破折号。在这种情况下,它是明确的,但值得注意。

修改

您知道吗,您可以在一行中使用正则表达式执行此操作,它只是令人印象深刻的难以理解:

while (str !== (str = str.replace("-", " "))) { }

答案 1 :(得分:2)

.replace应该采用正则表达式:

var b = datepickr.replace(/-/g,' ');

我会把它作为练习留给读者来充分研究正则表达式。

(这里重点是标志/g - 全球搜索

答案 2 :(得分:1)

试试这个:

var datepickr = 'Jun-29-2011';
var b = datepickr.replace( /-/g, ' ' );

/g会导致它替换每个-,而不仅仅是第一个。{/ p>

答案 3 :(得分:0)

replace适用于正则表达式,如下所示:

> "Hello-World-Hi".replace(/-/g, " ")
Hello World Hi

答案 4 :(得分:0)

var b = 'Jun-29-2011'.replace(/-/g, ' ');

或者:

var b = 'Jun-29-2011'.split('-').join(' ');

答案 5 :(得分:-2)

尝试:

var b = datepickr.toString().replace("-",' ');

我怀疑您正在尝试替换Date对象中的字符。