RegexReplace和RangeToTable问题

时间:2018-09-17 19:14:36

标签: javascript html google-sheets

我正在写信寻求您的帮助,以找到一种解决方案,以修复在RangeToTable()函数的输出中使用的以下正则表达式。 RangeToTable()函数输出具有几种类型的值的HTML代码,其中我们还有带有日期的列。日期以我们需要的格式显示,即日期名称,时间戳和时区。我们只需要日期就可以了。

为此,我想出了另外一列,其中我使用RegexReplace()函数查找并替换了所有以时区结尾的时间戳,但是,当我这样做时,它将匹配从第一个实例到最后一个实例的所有内容。整个代码中的一个替换整个内容,而不是仅用时区替换一组时间戳。

如果我在代码中手动输入换行符(在每个HTML关闭标签后按键盘上的Enter)并添加全局(\ g)开关,则效果很好,但是,我需要在原始表单上实现代码,因为这将使用公式自动进行。

我正在使用RegEx:

\s(2[0-3]|[01][0-9]):[0-5][0-9]:[0-9][0-9].*\)/g

代码示例:

<table cellpadding="8" cellspacing="0" style="border: 1px solid grey;">
<tr><th style="background-color:#DDDDDD; border: 1px solid grey;">Hire Date</th>
<th style="background-color:#DDDDDD; border: 1px solid grey;">Last Work Date</th>
<th style="background-color:#DDDDDD; border: 1px solid grey;">Last Paid Date</th></tr><tr>Sun Jun 16 2013 14:30:00 GMT-0400 (EDT)</td><td style="border: 1px solid grey;"></td><td style="border: 1px solid grey;"></td></tr><tr><td style="border: 1px solid grey;">Thu May 31 2018 14:30:00 GMT-0400 (EDT)</td><td style="border: 1px solid grey;"></td><td style="border: 1px solid grey;"></td></tr><tr><td style="border: 1px solid grey;">Sun Nov 26 2017 13:30:00 GMT-0500 (EST)</td><td style="border: 1px solid grey;"></td><td style="border: 1px solid grey;"></td></tr><tr><td style="border: 1px solid grey;">Sun Jun 10 2018 14:30:00 GMT-0400 (EDT)</td><td style="border: 1px solid grey;"></td><td style="border: 1px solid grey;"></td></tr><tr><td style="border: 1px solid grey;">Sat Jul 08 2017 14:30:00 GMT-0400 (EDT)</td><td style="border: 1px solid grey;"></td>
<td style="border: 1px solid grey;"></td></tr></table>

请帮助我找到合适的修复程序。

最好的问候, 赛德·H

1 个答案:

答案 0 :(得分:1)

尝试一下(在// g里面):

[^<>]+(2[0-3]|[01][0-9]):[0-5][0-9]:[0-9][0-9][^<>]+

由于日期字符串位于HTML标记内(在“>”之后和“ <”之前),因此仅隔离了日期字符串。