通过在javascript中搜索模式来替换substring

时间:2018-06-14 04:13:30

标签: javascript

我的日期时间低于

df.to_excel("yourfile.xlsx", index=True)

和21.08.29可以是任何字符串,具体取决于用户选择数据的时间。我想用11:59:59替换这个21:08:29所以输出应该是。

Wed Jun 13 2018 21:08:29 GMT-0700 (Pacific Daylight Time)

任何想法,

4 个答案:

答案 0 :(得分:1)

您可以通过正则表达式解析它的示例代码

var originalText = 'Wed Jun 13 2018 21:08:29 GMT-0700 (Pacific Daylight Time)';
var replacedText =  originalText.replace(/[0-9]{2}:[0-9]{2}:[0-9]{2}/,'11:59:59');

[0-9] - 任意数字

{2} - [0-9]

的字符串长度

但是,如果您的字符串是日期类型变量,或者可以存储在日期类型变量

var newVar = new Date( 'Jun 13 2018 21:08:29 GMT-0700');
newVar.setHours(11);
newVar.setMinutes(59);
newVar.setSeconds(59);

会给Jun 13 2018 11:59:59 GMT-0700 也会做的伎俩

答案 1 :(得分:0)

为什么不使用正则表达式?

var str = /*(DateTime string)*/;
var _regex = [0-9]{2}:[0-9]{2}:[0-9]{2};

var newstr = str.replace(_regex, /*(Time what you want)*/);

但是,您提供的字符串似乎是Date个对象,因此请考虑使用它的成员函数。

这可能会有所帮助:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

答案 2 :(得分:0)

假设您正在寻找24小时强制性领先0:

var newvalue='11:59:59';
Var str='Wed Jun 13 2018 21:08:29 GMT-0700 (Pacific Daylight Time)';
var replacedStrign=str.replace(/^(?:2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$/, newvalue)

答案 3 :(得分:0)

您可以将字符串转换为日期对象,操纵该日期对象,然后转换回字符串。

const time = new Date("Wed Jun 13 2018 21:08:29 GMT-0700 (Pacific Daylight Time)")
time.setHours(11)
time.setMinutes(59)
time.setSeconds(59)
time.toString() // "Wed Jun 13 2018 11:59:59 GMT-0600 (Mountain Daylight Time)"

编辑:我意识到这个解决方案会丢失时区信息,但在某些情况下仍然可能是一种有用的方法。