Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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 在每n个字符后插入一个字符,但仅在第一个x出现时插入_Javascript_Regex - Fatal编程技术网

Javascript 在每n个字符后插入一个字符,但仅在第一个x出现时插入

Javascript 在每n个字符后插入一个字符,但仅在第一个x出现时插入,javascript,regex,Javascript,Regex,我有一个13个字符的字符串,比如XXXXXXXXXXXX。我希望在每三个字符后输入一个连字符,但仅限于使用JQuery和正则表达式的前三个字符 这意味着我需要我的字符串是XXX-XXX-XXX-XXXX 如果我使用str.replace(/(.{3})/g,“$1-”,str作为我的字符串,正如我在另一篇文章中遇到的那样,它会生成我的XXX-XXX-XXX-X 任何帮助都将不胜感激 谢谢大家。那呢。替换(/({3})({3})({3})/,“$1-$2-$3-”)?如果你想用Regex做这件事,

我有一个13个字符的字符串,比如XXXXXXXXXXXX。我希望在每三个字符后输入一个连字符,但仅限于使用JQuery和正则表达式的前三个字符

这意味着我需要我的字符串是XXX-XXX-XXX-XXXX

如果我使用
str.replace(/(.{3})/g,“$1-”
str
作为我的字符串,正如我在另一篇文章中遇到的那样,它会生成我的
XXX-XXX-XXX-X

任何帮助都将不胜感激


谢谢大家。

呢。替换(/({3})({3})({3})/,“$1-$2-$3-”)

如果你想用Regex做这件事,它可以工作

 // Not nice but works
 var text = "XXXXXXXXXXXXX";
 text.replace(/(...)(...)(...)(....)/g, "$1-$2-$3-$4");
 // Result  "XXX-XXX-XXX-XXXX" Chrome 27+

为什么要寻找一条艰难的道路?使用循环。谢谢你,大卫,但我认为正则表达式会让我的生活更轻松:)到目前为止你有什么?嗨,icedwater,我在另一篇帖子中发现了一个正则表达式,类似str.replace(/({3})/,“$1-”)。但这将产生一个类似XXX-XXX-XXX-XXX的字符串-X@Kumar你应该一直把它包括进去,这样我们知道你已经尝试了一些东西,而不仅仅是告诉我们为你解决它。三一,你能帮我理解你的建议吗?还有-一开始不应该有一个
^
吗?我不同意这样更清楚,但我想这只是偏好/习惯的问题。不管怎样,这都是对答案的宝贵评论。@jcsanyi缩短1个字符?而且绝对不是“更清晰”。
{#}
是为一个reason@Kumar大卫的回答会很有效的。我只是提供了等效的变体,没有解决任何问题。是的,我在提交后看到了它,这就是我投票支持该答案的原因。嘿,winner_joiner,对于11122233444,您的解决方案给了我0-111-222-333美元:(对不起,$-参数以1而不是0开头。为了加快速度,我复制了错误的行,甚至还不是第一行。我更正了错误:)谢谢你的提示