过滤JavaScript中的所有非字母数字字符
我正在尝试从字符串中滤除特定字符。我认为这不需要太多介绍,因此这里有一些示例。
const filt1 = "This will not be replaced: æ Ç ü";
const filt2 = "This will be replaced: » ↕ ◄";
// Output goal:
// filt1 = This will not be replaced: æ Ç ü
// filt2 = This will be replaced:
我将如何去做?我要替换所有未使用任何语言的字符。我要保留重音字符和Chinse字符之类的东西。箭头,块等应被过滤掉。
我已经尝试了许多正则表达式过滤器,但没有一个能满足我的要求。这个效果最好:
((?![a-zA-ZàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇßØøÅåÆæœ ]).)*
但是它笨重,不包含非重音字母数字字符。抱歉,如果此帖子的措辞难以阅读。我已经有一段时间了,我的大脑无法正常运行。
回答如下:您可以尝试使用Unicode正则表达式/[^\p{L}\s]/ugi
console.log('This will be replaced: » ↕ ◄, This will not be replaced: æ Ç ü'.replace(/[^\p{L}\s]/ugi, ''));
过滤JavaScript中的所有非字母数字字符
我正在尝试从字符串中滤除特定字符。我认为这不需要太多介绍,因此这里有一些示例。
const filt1 = "This will not be replaced: æ Ç ü";
const filt2 = "This will be replaced: » ↕ ◄";
// Output goal:
// filt1 = This will not be replaced: æ Ç ü
// filt2 = This will be replaced:
我将如何去做?我要替换所有未使用任何语言的字符。我要保留重音字符和Chinse字符之类的东西。箭头,块等应被过滤掉。
我已经尝试了许多正则表达式过滤器,但没有一个能满足我的要求。这个效果最好:
((?![a-zA-ZàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇßØøÅåÆæœ ]).)*
但是它笨重,不包含非重音字母数字字符。抱歉,如果此帖子的措辞难以阅读。我已经有一段时间了,我的大脑无法正常运行。
回答如下:您可以尝试使用Unicode正则表达式/[^\p{L}\s]/ugi
console.log('This will be replaced: » ↕ ◄, This will not be replaced: æ Ç ü'.replace(/[^\p{L}\s]/ugi, ''));