正则表达式非英语字符

时间:2013-02-12 06:39:19

标签: regex actionscript-3

今天一直致力于让一个正则表达式工作后付几个人给我写一个做以下事情(他们都不能做到)...

允许所有英文字母数字字符,允许所有非英文字母数字字符,例如日语,西班牙语重音等...,并允许此标点符号)('$!.,&

我以为我通过消除我不想要的所有标点符号来破解它,但后来意识到它会通过一堆其他不需要的字符,例如子弹点......

_string = string.replace(/[\"\#\%\*\+\/\:\;\<\=\>\?\@\[\\\]\^\_\`\\{\|\}\~]/g, "");

(在AS3中)

我一直在玩\p{L} \p{Nd})('$!.,&,他们会让所有语言中的所有字母数字字符通过,然后是标点符号,但是没有破解它

那么有没有办法(和AS3?) - 允许使用任何语言的任何字母数字字符,加上这个标点符号)('$!.,&

我很乐意支付能够做到这一点的人。

谢谢你看看。

1 个答案:

答案 0 :(得分:1)

您可以使用\uXXXX元序列来指定字符的unicode ID,但您必须手动为每种语言添加范围。我工作过的大多数流行语言(非亚洲语言)的某些范围:

en:
AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz

ru:
АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя

pt:
ÁÂÃÀÇÉÊÍÓÔÕÚÜáâãàçéêíóôõúü

de:
abcdefghijklmnopqrstuvwxyzäöüßABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ

lv:
aābcčdeēfgģhiījkķlļmnņoprsštuūvzžAĀBCČDEĒFGĢHIĪJKĶLĻMNŅOPRSŠTUŪVZŽ

pl:
aąbcćdeęfghijklłmnńoóprsśtuwyzźżAĄBCĆDEĘFGHIJKLŁMNŃOÓPRSŚTUWYZŹŻ

tr:
abcçdefgğhıijklmnoöprsştuüvyzABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ

et:
abcdefghijklmnopqrsšzžtuvwõäöüxyABCDEFGHIJKLMNOPQRSŠZŽTUVWÕÄÖÜXY

[ALL CHARS]:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÂÃÄÇÉÊÍÓÔÕÖÚÜßàáâãäçéêíóôõöúüĀāĄąĆćČčĒēĘęĞğĢģĪīİıĶķĻļŁłŃńŅņŚśŞşŠšŪūŹźŻżŽžЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяё

RegExp matches all [ALL CHARS]:
[\u0041-\u005A,\u0061-\u007A,\u00C0-\u00C4,\u00C7,\u00C9-\u00CA,\u00CD,\u00D3-\u00D6,\u00DA,\u00DC,\u00DF-\u00E4,\u00E7,\u00E9-\u00EA,\u00ED,\u00F3-\u00F6,\u00FA,\u00FC,\u0100-\u0101,\u0104-\u0107,\u010C-\u010D,\u0112-\u0113,\u0118-\u0119,\u011E-\u011F,\u0122-\u0123,\u012A-\u012B,\u0130-\u0131,\u0136-\u0137,\u013B-\u013C,\u0141-\u0146,\u015A-\u015B,\u015E-\u0161,\u016A-\u016B,\u0179-\u017E,\u0401,\u0410-\u044F,\u0451]+