繁体   English   中英

正则表达式javascript及匹配结果

[英]Regular expression javascript and match result

我得到 2 种不同的格式来匹配我的正则表达式。

matches = ['10 am', '5 pm', 'by appointment only']

或者

['By Appointment :', '10 am', '8 pm' ]

所以在第一种情况下,结果应该是

“上午 10 点至下午 5 点仅限预约”

对于第二种情况,结果应该是

“预约:上午 10 点至下午 5 点”

加入“to”后,我尝试使用以下代码

let value = matches.join(' to ');

加入后,这将给出如下文本:

'上午 10 点至下午 5 点至仅限预约'

或者

“预约:上午 10 点至晚上 8 点”

if (value.includes('to by appointment only')) {
    value = value.replace('to by appointment only', 'by appointment only');
}
if (value.includes('By Appointment: to')) {
    value = value.replace('By Appointment: to', 'By Appointment:');
}

基本上在这里,我试图在加入后删除不需要的“to”文本如何在正则表达式的帮助下以更好的方式重构它以获得相同的结果?

如果项目以am结尾,您可以通过迭代matches数组和 append to字符串来轻松实现它。 您可以在String.endsWith()的帮助下进行检查

现场演示

 const matches = ['10 am', '5 pm', 'by appointment only']; matches.forEach((item, index) => { if (item.endsWith('am')) { matches[index] = item + ' to ' } }); console.log(matches.join(''));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM