Javascript 这个正则表达式并不适用于所有浏览器
我的情况是:Javascript 这个正则表达式并不适用于所有浏览器,javascript,regex,Javascript,Regex,我的情况是: if (/(.{4})/g.test(this.value)) this.value = this.value.replace(/(.{4})/g,'$1-'); 这只适用于Mozilla 这有什么问题 我想在四位数后加上。例如: 1234567->1234-567首先,您应该使用\d查找数字。 如果你的{}仍然不走运,你可以用愚蠢的方式:/\d\d\d/g看看这是否有什么不同在我的测试中,Chrome、Safari和Firefox似乎都在使用。需要注意的一点是,如果你最终得到一
if (/(.{4})/g.test(this.value)) this.value = this.value.replace(/(.{4})/g,'$1-');
这只适用于Mozilla
这有什么问题
我想在四位数后加上。例如:
1234567->1234-567首先,您应该使用\d查找数字。
如果你的{}仍然不走运,你可以用愚蠢的方式:/\d\d\d/g看看这是否有什么不同在我的测试中,Chrome、Safari和Firefox似乎都在使用。需要注意的一点是,如果你最终得到一个四位数的偶数个数,你也会有一个尾随的破折号,所以你可能需要考虑一个否定的前瞻来考虑字符串的结尾,假设它是所有的数字;并考虑将\d改为数字: 我已经测试了下面的正则表达式及其在Firefox、Chrome和IE8中的工作情况
'1234567'.replace(/(\d{4})/g,'$1-')
输出:
1234-567
您可以在Chrome 35.0.1916.153/Mac上在线测试您的正则表达式。您能否确切地指定它不起作用的位置以及结果是什么?如果您只测试数字,请尝试\d{4}。查找。什么是有效的,什么是无效的?m修饰符:多行。我认为在这种情况下不需要这样做。谢谢。
1234-567