javascript - 删除所有非字母数字和多个空格
问题描述
let a = "`!@A#$%A^&*A 789^&*(+_)JH?></.,":';-";
我需要删除除破折号以外的所有非字母字符,并用一个空格替换多个空格。
所以结果应该是——AAA 789JH-
这是我的尝试 - 没有成功:
a = a.replace("[^A-Za-z0-9 -]","");
a = a.replace(/\s\s+/g, ' ');
解决方案
您可以使用
a.replace(/[^A-Za-z0-9 -]+/g,"").replace(/\s{2,}/g, ' ')
正/[^A-Za-z0-9 -]+/g
则表达式将匹配除字母、数字、空格或/和连字符之外g
的 1 个或多个(请参阅量词)字符的多次出现(修饰符) 。+
如果您需要匹配任何空格,请将空格替换为\s
.
请注意,\s\s+
等于\s{2,}
where{2,}
是限制量词匹配 2 次或更多次出现的量化模式。
查看 JS 演示:
let a = "`!@A#$%A^&*A 789^&*(+_)JH?></.,\":';-";
console.log(a.replace(/[^A-Za-z0-9 -]+/g,"").replace(/\s{2,}/g, ' '));