Javascript 在正则表达式中的某些数字(时间格式)前找到一个空格

Javascript 在正则表达式中的某些数字(时间格式)前找到一个空格,javascript,node.js,regex,Javascript,Node.js,Regex,我有一个字符串,我想要一个正则表达式来确定一个数字之前是否有空格,如果有,那么在前面加一个空格。 例如:出租车仅限周四-周五-周六11:30PM-3:00AM 结果:出租车只有星期四-星期五-星期六11:30 PM-3:00 AM我不是正则表达式专家,但最终得到了以下两种变体: 使用回调函数作为替换方法的第二个参数的第一个变量: var str=‘出租车仅限周四至周五至周六11:30 pm-3:00 am’; var strUpdated=str.replace/\d?\d:\d?\dAM |

我有一个字符串,我想要一个正则表达式来确定一个数字之前是否有空格,如果有,那么在前面加一个空格。 例如:出租车仅限周四-周五-周六11:30PM-3:00AM
结果:出租车只有星期四-星期五-星期六11:30 PM-3:00 AM

我不是正则表达式专家,但最终得到了以下两种变体:

使用回调函数作为替换方法的第二个参数的第一个变量: var str=‘出租车仅限周四至周五至周六11:30 pm-3:00 am’; var strUpdated=str.replace/\d?\d:\d?\dAM | PM/g,函数m{ 返回m.replace/AM | PM/g,1美元; }; console.log'old:'+str;
console.log'new:'+strUpdated 为什么不检查一个数字是否与一个字母相邻,如果是,在它们之间加一个空格

检查所有数字[0-9],然后检查字母是否与其相邻[a-Zz-a]。然后用空格替换由$1定义的第n个字符,并将原始字符放在$2位置,从而将其保留在该位置

let str = 'TAXI CABS ONLY THURS-FRI-SAT 11:30PM-3:00AM';
str = str.replace(/([0-9])([A-Za-z])/ig, '$1 $2');

数字前还是数字后?@codtex,谢谢您的详细解释。如果,我有这样的时间:上午11点到下午6点或晚上8点到6点。我需要扩展这个正则表达式以涵盖所有可能的情况。@MaryamKoulaei您可以查看编辑,它应该考虑这些情况。正如我所说,我不是正则表达式专家,这是我想出的最快的方法。如果我需要扩展当前的正则表达式,我需要花一些时间