使用JavaScript我想删除字符串中不是数字,字母和空格的所有字符。因此请删除'%#$&@*
之类的字符,例如:
玩家必须玩! #justsaying
会变成:
玩家必须玩游戏
我怎么能这样做,我不确定正则表达式。
答案 0 :(得分:4)
正如@ chris85所说,您可以使用正则表达式[^0-9a-z-A-Z]
来替换所有不是字母,数字或空格的字符。
这是一个可以做你想要的功能:
function clean(str) {
return str.replace(/[^0-9a-z-A-Z ]/g, "").replace(/ +/, " ")
}
需要第二次替换调用来删除通过删除空格之间的字符而产生的额外空格的运行。
答案 1 :(得分:3)
使用replace
string.replace(/[^A-Z\d\s]/gi, '')
注意正则表达式末尾的两个标志
g
- 代表全局,意味着将找到正则表达式的每个此类实例
i
- 表示不区分大小写。这意味着它将匹配小写和大写字符
使用您的字符串,它会返回此输出
"Players got to play justsaying"
要将两个或多个空格字符转换为单个空格,您可以将另一个replace
方法转换为现有字符。
string.replace(/[^A-Z\d\s]/gi, '').replace(/\s+/g, ' ')
此处的关键是+
字符,它会找到一个或多个。
可能更有效率地做到这一点,但我是Regex的业余爱好者。
答案 2 :(得分:1)
原文
Player's got to * play! #justsaying
<强> REGEXP 强>
([^a-zA-Z0-9\s])
<强> RESULT 强>
Players got to play justsaying
测试它
const regex = /([^a-zA-Z0-9\s])/gm;
const str = `Player's got to * play! #justsaying`;
const subst = ``;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log(result);
答案 3 :(得分:1)
我还在正则表达式中添加了符号'
,因为您有Player's
字,所以这里是我的代码:
var str = "Player's got to * play! #justsaying";
var result = str.replace(/[^a-z\d\s']/gi, '');
答案 4 :(得分:0)
尝试
var text = "Player's got to * play! #justsaying";
var result = text.replace(/[^A-Z\d\s]/gi,'');
console.log(result);
在这里阅读更多内容: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
答案 5 :(得分:0)
这就是你如何匹配你有兴趣删除的角色......
[^\d\w\s]
注意:您应该使用全局修饰符
在这里测试:https://regex101.com/r/yilfcn/1 请参阅此帖子,了解如何应用它:javascript regexp remove all special characters