Javascript 删除特殊字符并仅保留一个

Javascript 删除特殊字符并仅保留一个,javascript,regex,Javascript,Regex,我想删除开头的所有特殊字符。 接下来,我想删除字符串末尾的所有特殊字符,只保留一个字符 例如: 字符串: !!on-line,,!! 结果: on-line, 您可以使用: '!!on-line,,!!'.replace(/^\W+|(\W)\W*$/g, "$1"); "on-line," 试试这个: result = subject.replace(/^[^\w]+([0-9a-z- ]+\W)\W+$/img, "$1"); 输入: !!on-line,,!! ###nothing

我想删除开头的所有特殊字符。 接下来,我想删除字符串末尾的所有特殊字符,只保留一个字符

例如:

字符串:

!!on-line,,!!
结果:

on-line,
您可以使用:

'!!on-line,,!!'.replace(/^\W+|(\W)\W*$/g, "$1");
"on-line,"
试试这个:

result = subject.replace(/^[^\w]+([0-9a-z- ]+\W)\W+$/img, "$1");
输入:

!!on-line,,!!
###nothing special!&&&&&
输出:

on-line,
nothing special!

一个问题是您允许哪些非特殊字符。目前,我们允许字母、数字、破折号和空格。这是由
[0-9a-z-]
指定的,可以通过添加或替换字符进行调整。

这不会在字符串末尾留下请求的“仅一个[特殊]字符”-根据OP的示例,结果应该是“联机”,然后是第二个捕获组
(\W*)
不需要捕获。请立即查看更新的答案,问题的格式设置不正确,因此无法正确理解需求。