我正在处理一个具有输入字段的表单,该字段需要在“00”和a-z或A-Z之间自动添加空格。
例如:"300A"
到"300 A"
或"200b"
到"200 b"
以下是我一直致力于的代码。我已经做了一段时间的研究,但是由于JavaScript技能很差,花了太长时间。
replace(/('00')([a-z][A-Z])/g, '$1 $2');
我很感激帮助。
答案 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');
以上的关键部分:
保存结果(您没有显示调用replace
的方式,但未保存结果是常见错误。)
'
周围没有00
。
您有两个单独的角色类[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
标记添加到正则表达式以使其不区分大小写。