JavaScript:使用替换在a-z A-Z之前的“00”之后添加空格

时间:2013-12-19 14:40:46

标签: javascript regex

我正在处理一个具有输入字段的表单,该字段需要在“00”和a-z或A-Z之间自动添加空格。

例如:"300A""300 A""200b""200 b"

以下是我一直致力于的代码。我已经做了一段时间的研究,但是由于JavaScript技能很差,花了太长时间。

replace(/('00')([a-z][A-Z])/g, '$1 $2');

我很感激帮助。

3 个答案:

答案 0 :(得分:3)

真的关闭:

var str = "....whatever...";
str = str.replace(/(00)([a-zA-Z])/g, '$1 $2');

或者您可以使用i标志(忽略大小写):

var str = "....whatever...";
str = str.replace(/(00)([a-z])/gi, '$1 $2');

以上的关键部分:

  1. 保存结果(您没有显示调用replace的方式,但未保存结果是常见错误。)

  2. '周围没有00

  3. 您有两个单独的角色类[a-z]和另外的[A-Z]。所以它正在寻找00后跟a-z范围内的某个内容,后跟A-Z范围内的 else

答案 1 :(得分:3)

您的正则表达式正在寻找"3'00'aA"而不是"300A"

尝试

replace(/(00)([a-zA-Z])/g, '$1 $2');

答案 2 :(得分:1)

以下是您的需求:

yourString.replace(/(00)([a-zA-Z])/g, '$1 $2')
// OR
yourString.replace(/(00)([a-z])/gi, '$1 $2')

你的正则表达式有两个问题:

  • '00'查找'个字符以及00

  • [a-z][A-Z]查找任何小写字母,后跟任何大写字母。将同一组方括号中的两个范围合并为[a-zA-Z],或者只使用[a-z]并将i标记添加到正则表达式以使其不区分大小写。