今天在写微信小程序时遇到一个关于文本替换函数replace问题。代码如下:
var strStartDate = '2018-09-30'
var strEndDate = '2018-10-30'
var tmpStartDate = strStartDate.replace("-", "/")
var tmpEndDate = strEndDate.replace("-", "/")
console.log("StartDate: " + tmpStartDate)
console.log("EndDate: " + tmpEndDate)
打印结果如下:
StartDate: 2018/09-30
EndDate: 2018/10-30
黑人问号脸???
原来,JS中replace本身就是只替换第一个字符。若要实现全局替换,需要修改第一个参数将要替换的字符放在/要替换的字符/g
中。修改后的代码如下:
var strStartDate = '2018-09-30'
var strEndDate = '2018-10-30'
var tmpStartDate = strStartDate.replace(/-/g, "/") //注意第一个参数
var tmpEndDate = strEndDate.replace(/-/g, "/") //注意第一个参数
console.log("StartDate: " + tmpStartDate)
console.log("EndDate: " + tmpEndDate)
打印结果如下:
StartDate: 2018-09-30
EndDate: 2018-10-30