我有这个正则表达式,它取代了除字母数字,空格和破折号之外的所有内容。
str.replace(/[^\w\s-]+/g, '')
A)我怎样才能排除str
中的unicode字?
我应该手动放置所有!#$%
等。我想排除的符号?
B)此外,如果我想摆脱表情符号(因为我会允许其他unicode)并且只想保留其他语言的话?
答案 0 :(得分:0)
如果您知道字符集范围,则可以排除这些范围。这将排除所有非数字字符
str = str.replace(/[^0-9]+/g, '');
答案 1 :(得分:0)
最安全的方法是在A
中描述您在字符集中包含您不想匹配的字符列表。
^
=否定匹配\w
= a-zA-Z0-9
的快捷方式,\s
=(空格),!
,#
,$
,%
和-
=这些特定字符否定匹配导致字符类匹配列表中没有的任何内容,您可以不使用+
来匹配要删除的单个字符:
输入:str = 'this is a test )(*&^%$#@!~';
正则表达式:str.replace(/[^\w\s!#$%-]/g, '');
结果:this is a test %$#!