Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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,嗨,我有这根绳子 "Remote Control 14.12, Foo Bar 41.2, Wooden Chair 83.13" 我想成功 "Remote Control - 14.12, Foo Bar - 41.2, Wooden Chair - 83.13" 尝试链接正则表达式,但我可以找到插入中间的方法。任何帮助都将不胜感激。这是一项工作:匹配并替换一个空格,如果它后面跟一个数字: result = subject.replace(/ (?=\d)/g, " - "); 说明:

嗨,我有这根绳子

"Remote Control 14.12, Foo Bar 41.2, Wooden Chair 83.13"
我想成功

"Remote Control - 14.12, Foo Bar - 41.2, Wooden Chair - 83.13"

尝试链接正则表达式,但我可以找到插入中间的方法。任何帮助都将不胜感激。

这是一项工作:匹配并替换一个空格,如果它后面跟一个数字:

result = subject.replace(/ (?=\d)/g, " - ");
说明:

如果您还想在数字后插入破折号(但不是在字符串的末尾),则必须在单独的步骤中插入破折号,因为JavaScript令人遗憾地缺乏对lookbehind断言的支持:

final_result = result.replace(/, /g, " - ");
这是一个作业:匹配并替换后跟数字的空格:

result = subject.replace(/ (?=\d)/g, " - ");
说明:

如果您还想在数字后插入破折号(但不是在字符串的末尾),则必须在单独的步骤中插入破折号,因为JavaScript令人遗憾地缺乏对lookbehind断言的支持:

final_result = result.replace(/, /g, " - ");

如果没有前瞻性,您可以使用以下正则表达式:

var s = "Remote Control 14.12, Foo Bar 41.2, Wooden Chair 83.13";
var r = s.replace(/( \d)/g, " -$1");
//=> "Remote Control - 14.12, Foo Bar - 41.2, Wooden Chair - 83.13"
搜索:

1st Capturing group ( \d) - capture this string into `$1` where
  matches the character " " (space) literally
  \d match a digit [0-9]
 " -$1" which is space followed by hyphen followed by $1 (back reference to string captured)
替换为:

1st Capturing group ( \d) - capture this string into `$1` where
  matches the character " " (space) literally
  \d match a digit [0-9]
 " -$1" which is space followed by hyphen followed by $1 (back reference to string captured)

如果没有前瞻性,您可以使用以下正则表达式:

var s = "Remote Control 14.12, Foo Bar 41.2, Wooden Chair 83.13";
var r = s.replace(/( \d)/g, " -$1");
//=> "Remote Control - 14.12, Foo Bar - 41.2, Wooden Chair - 83.13"
搜索:

1st Capturing group ( \d) - capture this string into `$1` where
  matches the character " " (space) literally
  \d match a digit [0-9]
 " -$1" which is space followed by hyphen followed by $1 (back reference to string captured)
替换为:

1st Capturing group ( \d) - capture this string into `$1` where
  matches the character " " (space) literally
  \d match a digit [0-9]
 " -$1" which is space followed by hyphen followed by $1 (back reference to string captured)

你能告诉我怎么读那个正则表达式吗?我明白了,这对我会有帮助的。把字符串变成“Remote Control-14.12-Foo Bar-41.2-Woody Chair-83.13”怎么样?我还在学习regex的工作方式。你需要在另外一个步骤中完成这项工作,因为JavaScript只支持向前看,不支持向后看(你需要检查前一个字符是否是数字)。像这样吗<代码>str.replace(/(?=\d)/g,“-”)。replace(/,/g,“-”)可以吗?你能告诉我如何读取那个正则表达式吗?我明白了,这对我会有帮助的。把字符串变成“Remote Control-14.12-Foo Bar-41.2-Woody Chair-83.13”怎么样?我还在学习regex的工作方式。你需要在另外一个步骤中完成这项工作,因为JavaScript只支持向前看,不支持向后看(你需要检查前一个字符是否是数字)。像这样吗<代码>str.replace(/(?=\d)/g,“-”)。replace(/,/g,“-”)可以吗?哇。太棒了。你能告诉我为什么要给元字符加括号,以及如何读取正则表达式吗?美元符号是什么意思?补充了一些解释。我明白了。把绳子变成这个“遥控器-14.12-Foo Bar-41.2-木椅-83.13”怎么样?我还在学习regex的工作方式。哇。太棒了。你能告诉我为什么要给元字符加括号,以及如何读取正则表达式吗?美元符号是什么意思?补充了一些解释。我明白了。把字符串变成这个“遥控器-14.12-Foo Bar-41.2-Woody Chair-83.13”怎么样?我还在学习regex的工作方式。在尝试使用它们之前,你可能想这样做。在尝试使用它们之前,你可能想这样做。