我需要检查数字是否在字母旁边,如果是,请添加下划线。
例如:
Grapes23 --> Grapes_23
我已经尝试了很长时间,但我对正则表达式很陌生。我试过这个但它不起作用:
str=str.replace(/([A-z]+)([0-9])/i, '_'); //if number next to letter, add underscore
我会很感激任何帮助,谢谢!
我需要检查数字是否在字母旁边,如果是,请添加下划线。
例如:
Grapes23 --> Grapes_23
我已经尝试了很长时间,但我对正则表达式很陌生。我试过这个但它不起作用:
str=str.replace(/([A-z]+)([0-9])/i, '_'); //if number next to letter, add underscore
我会很感激任何帮助,谢谢!
查找一个字母后跟一个数字:
str = str.replace(/([a-z])(?=[0-9])/ig, '$1_');
这个正则表达式的工作原理:
([a-z])
是任何小写字母,将其包裹在括号中使其成为“匹配组”(?=[0-9])
是“前瞻”。它基本上意味着“后跟[0-9](任何数字)”i
表示忽略大小写(否则我们将不得不使用[a-zA-Z]
)g
表示全局,或替换它找到的每个匹配项(默认只替换第一个匹配项)$1
表示“第一个匹配组”,或上面第一个项目符号匹配的字母。str.replace(/([a-zA-Z])(\d)/g,'$1_$2')
在你的字符串上运行。这将查找后跟数字的任何字母,捕获字母和数字(注意括号),然后用两者之间的下划线替换它们。$1 和 $2 是对在正则表达式匹配中找到的捕获的字母和数字的回调。