我有以下正则表达式,在Chrome中可以正常工作,但在Firefox中无法正常工作,并生成语法错误无效的Regex组:bld = txt.split(/(?<=:)/iu,1); 我尝试使用/(?<=\:)/iu来转义冒号,但是它仍然出现了相同的错误。我无法弄清楚问题的原因。 我已经尝试过转义 :,但是出现了相同的错误。我无法找出问题的原因。
如您在这里所见,截至目前,不是所有浏览器/JavaScript环境都支持向后查找。因此,如果要支持包括旧版本在内的所有浏览器,则不能依赖该功能。 由于您只想匹配字符串中除:和第一个:之外的0个或多个字符,因此可以使用以下代码: s.match(/^[^:]*:/) 看看正则表达式演示。 JS: console.log( 'Error 5: the lorem lipsum: in...'.match(/^[^:]*:/)[0] );
'1:2:3'
,你想得到1:
吗?那么你可以使用s.match(/^[^:]*:/)
。这个问题的原因很简单也很出名:JS RegExp 直到最近版本的 Chrome 才支持后行断言。 - Wiktor Stribiżew错误5:lorem lipsum:in...
,我需要得到错误5:
。 - SaidbakRmatch
很好,但是使用split
不起作用。此外,我需要了解在 FireFox 中我的正则表达式和分割出现了什么问题? - SaidbakRsplit
。 - Wiktor Stribiżew