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