Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 XRegExp将替换IE中的Unicode字符_Javascript_Regex_Unicode_Xregexp - Fatal编程技术网

Javascript XRegExp将替换IE中的Unicode字符

Javascript XRegExp将替换IE中的Unicode字符,javascript,regex,unicode,xregexp,Javascript,Regex,Unicode,Xregexp,我开发了一个javascript函数来清除一系列Unicode字符。例如,“ñeóñúa1.txt”=>“neonu a1.txt”。为此,我使用了一个正则表达式: var = new RegExp patternA ("[\\u0300-\\u036F]", "g"); name = name.replace (patternA,''); 如果我的研究是正确的,IE不会以同样的方式检测Unicode。我正在尝试使用库XRegExp()创建一个等效函数,它与所有浏览器兼容,但我不知道如何编

我开发了一个javascript函数来清除一系列Unicode字符。例如,“ñeóñúa1.txt”=>“neonu a1.txt”。为此,我使用了一个正则表达式:

 var = new RegExp patternA ("[\\u0300-\\u036F]", "g");
 name = name.replace (patternA,'');
如果我的研究是正确的,IE不会以同样的方式检测Unicode。我正在尝试使用库XRegExp()创建一个等效函数,它与所有浏览器兼容,但我不知道如何编写Unicode模式,以便XRegExp在IE中工作

失败的尝试之一:

    XRegExp.replace(name,'\\u0300-\\u036F','');

如何构建此模式?

作为
XRegExp.replace
方法的第二个参数提供的值应该是正则表达式对象,而不是字符串。正则表达式可以由
XRegExp
或本机
RegExp
构造函数构建。因此,以下两行是等效的:

name = name.replace(/[\u0300-\u036F]/g, '');
// Is equivalent to:
name = XRegExp.replace(name, /[\u0300-\u036F]/g, '');
但是,您编写的以下行无效:

var=new RegExp patternA(“[\\u0300-\\u036F]”,即“g”)

相反,它应该是:

var patternA=newregexp(“[\\u0300-\\u036F]”,即“g”)

我不知道这是否是你问题的根源,但也许。作为记录,IE的Unicode支持与其他浏览器一样好或更好

XRegExp可以让您通过名称识别块,而不是使用幻数
XRegExp('[\\u0300-\\u036F]')
XRegExp('\\p{InCombiningDiacriticalMarks}')
完全等效。但是,该块中的标记是所有组合标记的一小部分。实际上,您可能需要匹配类似于
XRegExp('\\p{M}')
的内容。然而,请注意,简单地像你正在做的那样删除标记并不是删除变音符号的安全方法。一般来说,你试图做的是一个坏主意,应该避免,因为它通常会导致错误或无法理解的结果。