Javascript正则表达式删除除-和æ之外的特殊字符øå;
我明白了:Javascript正则表达式删除除-和æ之外的特殊字符øå;,javascript,regex,Javascript,Regex,我明白了: var stringToReplace = 'æøasdasd\89-asdasd sse'; var desired = stringToReplace.replace(/[^\w\s]/gi, ''); alert(desired); 我从另一个SO问题中找到了替换规则 这工作正常,它提供输出: asdasd89asdasd sse 尽管我想制定其他规则: 保留字符 保留-字符 将空格/空格转换为-字符 因此,输出将是: æøåasdasd89-asdasd-sse 我知道
var stringToReplace = 'æøasdasd\89-asdasd sse';
var desired = stringToReplace.replace(/[^\w\s]/gi, '');
alert(desired);
我从另一个SO问题中找到了替换规则
这工作正常,它提供输出:
asdasd89asdasd sse
尽管我想制定其他规则:
字符
-
字符-
字符æøåasdasd89-asdasd-sse
我知道我可以多跑一条线:
stringtoReplace.替换(“,-”)
为了实现我的目标——但我不知道如何处理1和2),因为我不喜欢正则表达式?您可以将特殊字符添加到排除列表中
/[^\w\sæøå-]/gi
玩弄榜样
正如您所说,您可以使用另一个替换来用破折号替换空格,这应该可以:
str = str.replace(/[^æøå\w -]+/g, '').replace(/ +/g, '-');
实时演示:您的原始正则表达式
[^\w\s]
以非单词或空格字符的任何字符为目标(-
,例如)。要在此正则表达式的“白名单”中包含其他字符,只需将它们添加到该字符组:
stringToReplace.replace(/[^\w\sæøå-]/gi, '');
至于用连字符替换空格,您不能在一个正则表达式中同时完成这两项工作。但是,您可以在事后使用字符串替换来解决这个问题
stringToReplace.replace(" ","-");
谢谢你的回答。效果几乎很好。尝试使用此输入´æøasdasd\89 asdasd sse e a sd s´,它会将所有空格替换为-