指定在ActionScript正则表达式

我一直想写一个正则表达式会匹配所有Unicode字符的字像一个unicode范围:指定在ActionScript正则表达式

/[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF\w]/gi 

但这完全失败,并且不匹配任何内容。我尝试了各种各样的表达式,并且似乎只要我尝试指定范围就会失败。任何人比我幸运?

我希望actionscript会提供类似\ p {L}的内容,但如果有类似内容,我无法在文档中找到它。

回答:

这了一段时间一直是个问题,我无法发现它已经解决的任何信息,以前问:

Restrict input to a specified language

How to specify a unicode range in a RegExp?

我知道这是一种黑客攻击,但它在JavaScript中起作用,因此您可以使用ExternalInterface将测试集中到那里并将结果传回。

回答:

嗯。看起来这不是关于范围,而是关于多字节字符。

这工作:

var exp:RegExp = new RegExp("[\u00A0-\u0FCF]", "gi"); 

var str:String = "\u00A1 \u00A2 \u00A3 \u00A3";

trace("subject:", str);

trace("match:", str.match(exp));

这并不:

var exp:RegExp = new RegExp("[\u00A0-\u0FD0]", "gi"); 

var str:String = "\u00A1 \u00A2 \u00A3 \u00A3";

trace("subject:", str);

trace("match:", str.match(exp));

无论如何,你可以使用正则表达式的构造函数,将字符串转换为一个匹配模式。

回答:

您可以将String.fromCharCode与Unicode字符一起使用,然后范围将在正则表达式中正常工作。下面是使用你原来的问题的例子:

var exp:RegExp = new RegExp("[" + generateRangeForUnicodeVariables(0x00A0, 0xD7FF) + generateRangeForUnicodeVariables(0xF900, 0xFDCF) + generateRangeForUnicodeVariables(0xFDF0, 0xFFEF) + "\w]", "gi"); 

private function generateRangeForUnicodeVariables(var1:Object, var2:Object):String

{

return String.fromCharCode(var1) + "-" + String.fromCharCode(var2);

}

以上是 指定在ActionScript正则表达式 的全部内容, 来源链接: utcz.com/qa/259289.html

回到顶部