我懂了:

var stringToReplace = 'æøasdasd\89-asdasd sse';
var desired = stringToReplace.replace(/[^\w\s]/gi, '');
alert(desired);


我从另一个SO问题中找到了替换规则。

这工作正常,它给出了输出:

asdasd89asdasd sse


尽管我想设置其他规则:


保留æøå个字符
保持-字符
将空格/空格转换为-字符


因此输出为:

æøåasdasd89-asdasd-sse


我知道我可以多加一行:
    stringtoReplace.replace('','-');

完成我的3)目标-但我不知道该如何处理1和2),因为我不喜欢正则表达式?

最佳答案

这应该工作:

str = str.replace(/[^æøå\w -]+/g, '').replace(/ +/g, '-');


现场演示:http://ideone.com/d60qrX

07-24 19:12