JavaScript中如何使用正则移除指定字符、仅保留数字和逗号
问题说明
现有变量定义:
var cartstring = "27,00 - R"
需求限制:仅可使用正则表达式实现(不允许使用slice等其他字符串处理方法),需要生成cartstring1、cartstring2两个字符串,二者最终值都为"27,00"。两个变量的实现逻辑要求如下:
cartstring1:通过移除字符串中的空格、-、R三类字符实现cartstring2:通过仅保留字符串中的数字和,字符实现
原有代码问题分析
cartstring1的正则仅匹配了空格,没有包含需要移除的-和R字符cartstring2的正则/\D/g匹配所有非数字字符,会把需要保留的逗号也一并删除
修正后可运行代码
// cartstring1:移除空格、-、R三类字符 cartstring1 = cartstring.replace(/[\s\-R]/g, ""); // cartstring2:仅保留数字和逗号 cartstring2 = cartstring.replace(/[^\d,]/g, "");
正则说明
- 针对
cartstring1的正则/[\s\-R]/g:字符组[]中包含三类需要移除的字符,\s匹配空格、\-匹配横杠(加转义符避免被识别为字符区间)、R匹配大写字母R,g表示全局匹配所有符合规则的字符替换为空 - 针对
cartstring2的正则/[^\d,]/g:字符组开头的^表示取反,\d匹配数字,即匹配所有不是数字也不是逗号的字符,全局替换为空后就仅保留了需要的内容
内容的提问来源于stack exchange,提问作者h20002000
相关产品推荐
相关产品推荐

