首页 > 解决方案 > 使用 String.prototype.replace 删除非字母数字文本

问题描述

我正在尝试删除不是字母或数字的所有字符的字符串。我尝试String.prototype.replace使用正则表达式,但它没有删除预期的字符:

this.colorPreset1 = this.colorPreset1.replace(/^[0-9a-zA-Z]+$/, '');

标签: javascriptregex

解决方案


this.colorPreset1=this.colorPreset1.replace(/[^0-9a-zA-Z]/g, '');

字符组更改为排除组。[^]将匹配不在列表中的任何字符。正如你所拥有的,它只会匹配你想要保留的字符。

字符串的锚点已被删除 - 您想要替换任何非字母数字字符,因此它们的位置无关紧要。

添加了全局标志//g,因此它将替换所有匹配项,而不仅仅是第一个匹配项。


推荐阅读