我明白了:
var stringToReplace = 'æøasdasd\89-asdasd sse';
var desired = stringToReplace.replace(/[^\w\s]/gi, '');
alert(desired);
我从另一个SO问题中找到了替换规则。
这很好用,它给出了输出:
asdasd89asdasd sse
虽然我想设置其他规则:
æøå
个字符-
字符-
字符所以输出结果为:
æøåasdasd89-asdasd-sse
我知道我可以多跑一行: stringtoReplace.replace('',' - ');
实现我的目标 - 但我不知道如何处理1和2),因为我没有进入正则表达式?
答案 0 :(得分:2)
答案 1 :(得分:1)
答案 2 :(得分:0)
您的原始正则表达式[^\w\s]
会定位任何不是单词或空格字符的字符(例如-
)。要在此正则表达式的“白名单”中包含其他字符,只需将它们添加到该字符组:
stringToReplace.replace(/[^\w\sæøå-]/gi, '');
至于用连字符替换空格,你不能在一个正则表达式中同时执行这两个操作。但是,您可以在之后使用字符串替换来解决此问题。
stringToReplace.replace(" ","-");