-1

目前我在javascript中尝试这个表达式 /[^\w\s]/gi 。但是,它不会删除 _ 下划线。如何去掉下划线?我要删除这些特殊字符!"#$%&'()*+,-./:;<=>?@[]^_`{|}~

    var text = reasonTxt.GetText(); var textFull = text.replace(/[^\w\s]/gi, ''); 
4

3 回答 3

1

_被认为是单词字符。所以你也需要否定这一点。

var text = reasonTxt.GetText(); var textFull = text.replace(/[^\w\s]|_/gi, '');

演示

let str = "vivek #$ asbc &12341236~!@#$%^&   _    !#$%&'()*+,-./:;<=>?@[]^_`{|}~+_";



console.log(str.replace(/[^\w\s]|_/gi, ""));

于 2018-11-30T04:27:52.667 回答
0

如果你只想要字母和数字

var text = reasonTxt.GetText(); var textFull = text.replace(/[^A-Za-z0-9]+/g, '');

如果你只想要字母

var text = reasonTxt.GetText(); var textFull = text.replace(/[^A-Za-z]+/g, '');
于 2018-11-30T04:32:47.673 回答
0

您的正则表达式几乎是正确的,但由于_已经进入\w(与)\w相同,[a-zA-Z0-9_]因此您必须明确检查_并修改您的正则表达式,

[^\w\s]|_

将您的代码更改为此,

var text = reasonTxt.GetText(); var textFull = text.replace(/[^\w\s]|_/gi, ''); 

演示

于 2018-11-30T04:39:10.877 回答