Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 替换不包括unicode的非数字字符_Javascript_Regex_Unicode - Fatal编程技术网

Javascript 替换不包括unicode的非数字字符

Javascript 替换不包括unicode的非数字字符,javascript,regex,unicode,Javascript,Regex,Unicode,我有一个正则表达式,它取代了除了字母数字、空格和破折号以外的所有东西 str.replace(/[^\w\s-]+/g, '') A) 如何使其排除str中的unicode单词? 我是否应该手动放置所有的!#$%等。我要排除的符号 B) 另外,如果我想去掉表情符号(因为我允许使用其他unicode),只保留其他语言的单词?如果您知道字符集范围,可以排除这些字符集。这将排除所有非数字字符 str = str.replace(/[^0-9]+/g, ''); 最安全的方法是将不希望匹配的字符列

我有一个正则表达式,它取代了除了字母数字、空格和破折号以外的所有东西

str.replace(/[^\w\s-]+/g, '')
A) 如何使其排除
str
中的unicode单词? 我是否应该手动放置所有的
!#$%等。我要排除的符号


B) 另外,如果我想去掉表情符号(因为我允许使用其他unicode),只保留其他语言的单词?

如果您知道字符集范围,可以排除这些字符集。这将排除所有非数字字符

 str = str.replace(/[^0-9]+/g, '');

最安全的方法是将不希望匹配的字符列表包括在字符集中,如
A
中所述

  • ^
    =负匹配
  • \w
    =a-zA-Z0-9
的快捷方式
  • \s
    =(空格)
  • $
    %
    ,以及
    -
    =这些特定字符
  • 负匹配导致字符类匹配列表中不存在的任何字符,您可以取消
    +
    以匹配要删除的单个字符:

    Input
    str='这是一个测试)(*&^%$#@!~'

    Regex
    str.replace(/[^\w\s!$%-]/g',);

    结果
    这是一个测试%$#!


    请参见:

    项目A:
    str.replace(/[^A-Za-z0-9\s-]/g',);
    ?定义“unicode单词”。您想排除什么(显然是从要删除的字符集中排除的)?您能给出一些您所指的表情符号的示例吗?其中一些示例?例如,@JukkaK.Korpela“Δέα”是“unicode单词”在unicode中的希腊字符是:
    '\u03b9\u03b4\u03ad\u03b1'
    。如果我尝试上面的
    .replace()
    ,我将得到一个空字符串。示例:示例不是定义。对于编程,您需要一个定义。并且,由于定义了
    \w
    的方式,您会得到一个空字符串(它只匹配某些Ascii字符)。这将删除比问题中的代码多得多的字符。其目的显然是删除更少的字符。