Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这个正则表达式并不适用于所有浏览器_Javascript_Regex - Fatal编程技术网

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