删除所有非alphanum和多个空格

问题描述 投票:-1回答:1
let a = "`!@A#$%A^&*A    789^&*(+_)JH?></.,":';-";

我需要删除除dash之外的所有非alphanum字符,并用一个空格替换多个空格。

所以结果应该是 - AAA 789JH-

这是我的尝试 - 没有成功:

a = a.replace("[^A-Za-z0-9 -]","");
a = a.replace(/\s\s+/g, ' ');
javascript regex
1个回答
1
投票

你可以用

a.replace(/[^A-Za-z0-9 -]+/g,"").replace(/\s{2,}/g, ' ')

/[^A-Za-z0-9 -]+/g正则表达式将匹配除字母,数字,空格或/和连字符之外的1个或更多(参见g量词)字符的多次出现(+修饰符)。

如果需要匹配任何空格,请用\s替换空格。

请注意,\s\s+等于\s{2,},其中{2,}limiting quantifier,匹配2次或更多次量​​化模式。

看JS演示:

let a = "`!@A#$%A^&*A    789^&*(+_)JH?></.,\":';-";
console.log(a.replace(/[^A-Za-z0-9 -]+/g,"").replace(/\s{2,}/g, ' '));
© www.soinside.com 2019 - 2024. All rights reserved.