javascript - 需要有关从 PHP 到 Javascript 的正则表达式的帮助

标签 javascript regex

我需要排除任何非欧洲字符,例如中文、阿拉伯语、俄语等。

在 PHP 中,我使用这个正则表达式 /[\p{Sc}\p{So}\p{Mn}\p{P}\p{Z}À-ÿ\w]/克

它匹配:

  • 字母数字拉丁字符(a,b,c,1,2,3,A,B,C ...)
  • 欧洲口音(è,é,ò,ç,à ...)
  • UTF-8 符号 (© ...)
  • 货币(€、£、$ ...)
  • 空格

如何在 Javascript 中执行相同操作?

最佳答案

JS 不支持 Unicode 属性,因此正则表达式较长且不太优雅。

您的正则表达式应大致相当于此列表(长):

[0-9A-Za-z\ -*,-/\:;?@\[-\]_w\{\}\u00A0-\u00A7\u00A9\u00AB\u00AE\u00B0\u00B6\u00B7\u00BB\u00BF-\u00FF\u0300-\u036F\u037E\u0387\u0482-\u0487\u055A-\u055F\u0589\u058A\u058D-\u058F\u0591-\u05C7\u05F3\u05F4\u0609-\u061B\u061E\u061F\u064B-\u065F\u066A-\u066D\u0670\u06D4\u06D6-\u06DC\u06DE-\u06E4\u06E7-\u06ED\u06FD\u06FE\u0700-\u070D\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07F6-\u07F9\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0830-\u083E\u0859-\u085B\u085E\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962-\u0965\u0970\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09F2\u09F3\u09FA\u09FB\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AF0\u0AF1\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B70\u0B82\u0BC0\u0BCD\u0BF3-\u0BFA\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C7F\u0C81\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D01\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0D79\u0DCA\u0DD2-\u0DD4\u0DD6\u0DF4\u0E31\u0E34-\u0E3A\u0E3F\u0E47-\u0E4F\u0E5A\u0E5B\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F01-\u0F1F\u0F34-\u0F3D\u0F71-\u0F7E\u0F80-\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FBE-\u0FCC\u0FCE-\u0FDA\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u104A-\u104F\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D-\u109F\u10FB\u135D-\u1368\u1390-\u1399\u1400\u166D\u166E\u1680\u169B\u169C\u16EB-\u16ED\u1712-\u1714\u1732-\u1736\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D6\u17D8-\u17DB\u17DD\u1800-\u180D\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1940\u1944\u1945\u19DE-\u19FF\u1A17\u1A18\u1A1B\u1A1E\u1A1F\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1AB0-\u1ABD\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B5A-\u1B7C\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1BFC-\u1BFF\u1C2C-\u1C33\u1C36\u1C37\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD0-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u2000-\u200A\u2010-\u2029\u202F-\u2043\u2045-\u2051\u2053-\u205F\u207D\u207E\u208D\u208E\u20A0-\u20BE\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116\u2117\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u214A\u214C\u214D\u214F\u218A\u218B\u2195-\u2199\u219C-\u219F\u21A1\u21A2\u21A4\u21A5\u21A7-\u21AD\u21AF-\u21CD\u21D0\u21D1\u21D3\u21D5-\u21F3\u2300-\u231F\u2322-\u237B\u237D-\u239A\u23B4-\u23DB\u23E2-\u23FA\u2400-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u25B6\u25B8-\u25C0\u25C2-\u25F7\u2600-\u266E\u2670-\u2775\u2794-\u27BF\u27C5\u27C6\u27E6-\u27EF\u2800-\u28FF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2B00-\u2B2F\u2B45\u2B46\u2B4D-\u2B73\u2B76-\u2B95\u2B98-\u2BB9\u2BBD-\u2BC8\u2BCA-\u2BD1\u2BEC-\u2BEF\u2CE5-\u2CEA\u2CEF-\u2CF1\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2D7F\u2DE0-\u2E2E\u2E30-\u2E42\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u3004\u3008-\u3020\u302A-\u302D\u3030\u3036\u3037\u303D-\u303F\u3099\u309A\u30A0\u30FB\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u32FE\u3300-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA4FE\uA4FF\uA60D-\uA60F\uA66F\uA673-\uA67E\uA69E\uA69F\uA6F0-\uA6F7\uA802\uA806\uA80B\uA825\uA826\uA828-\uA82B\uA836-\uA839\uA874-\uA877\uA8C4\uA8CE\uA8CF\uA8E0-\uA8F1\uA8F8-\uA8FA\uA8FC\uA926-\uA92F\uA947-\uA951\uA95F\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9C1-\uA9CD\uA9DE\uA9DF\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA5C-\uAA5F\uAA77-\uAA79\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAADE\uAADF\uAAEC\uAAED\uAAF0\uAAF1\uAAF6\uABE5\uABE8\uABEB\uABED\uFB1E\uFD3E\uFD3F\uFDFC\uFDFD\uFE00-\uFE19\uFE20-\uFE52\uFE54-\uFE61\uFE63\uFE68-\uFE6B\uFF01-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65\uFFE0\uFFE1\uFFE4-\uFFE6\uFFE8\uFFED\uFFEE\uFFFC\uFFFD]

或者没有尽可能多的转义(警告,不可打印):

[\ -*,-/:;?@[-]_w{}  -§©«®°¶·»¿-ÿ̀-ͯ;·҂-҇ ՚-՟։֊֍-֏֑-ׇ׳״؉-؛؞؟ً-ٟ ٪-٭ٰ۔ۖ-ۜ۞-ۤۧ-ۭ۽۾܀-܍ܑܰ-݊ަ-ް߫-߳ ߶-߹ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࠭࠰-࠾࡙-࡛ ࡞ࣣ-ंऺ़ु-ै्॑-ॗॢ-॥॰ঁ়ু-ৄ্ৢৣ ৲৳৺৻ਁਂ਼ੁੂੇੈੋ-੍ੑੰੱੵઁં઼ુ-ૅેૈ્ૢૣ ૰૱ଁ଼ିୁ-ୄ୍ୖୢୣ୰ஂீ்௳-௺ఀా-ీె-ైొ-్ౕౖౢౣ ౿ಁ಼ಿೆೌ್ೢೣഁു-ൄ്ൢൣ൹්ි-ුූ ෴ัิ-ฺ฿็-๏๚๛ັິ-ູົຼ່-ໍ༁-༟ ༴-༽ཱ-ཾྀ-྇ྍ-ྗྙ-ྼ྾-࿌࿎-࿚ိ-ူဲ-့္်ွှ ၊-၏ၘၙၞ-ၠၱ-ၴႂႅႆႍႝ-႟჻፝-፨ ᎐-᎙᐀᙭᙮ ᚛᚜᛫-᛭ᜒ-᜔ᜲ-᜶ᝒᝓᝲᝳិ-ួំ៉-៖ ៘-៛៝᠀-ᢩᤠ-ᤢᤧᤨᤲ᤹-᤻᥀᥄᥅᧞-᧿ᨘᨗᨛ ᨞᨟ᩖᩘ-ᩞ᩠ᩢᩥ-ᩬᩳ-᩿᩼᪠-᪦᪨-᪭᪰-᪽ᬀ-ᬃ᬴ᬶ-ᬺᬼᭂ ᭚-᭼ᮀᮁᮢ-ᮥᮨᮩ᮫-ᮭ᯦ᯨᯩᯭᯯ-ᯱ᯼-᯿ᰬ-ᰳᰶ᰷ ᰻-᰿᱾᱿᳀-᳇᳐-᳢᳠-᳨᳭᳴᳸᳹᷀-᷵᷼-᷿  - ‐-\
 -⁃⁅-⁑⁓- ⁽⁾₍₎₠-₾⃐-⃥⃜⃡-⃰ ℀℁℃-℆℈℉℔№℗℞-℣℥℧℩℮℺℻⅊⅌ ⅍⅏↊↋↕-↙↜-↟↡↢↤↥↧-↭↯-⇍⇐ ⇑⇓⇕-⇳⌀-⌟⌢-⍻⍽-⎚⎴-⏛⏢-⏺␀-␦ ⑀-⑊⒜-ⓩ─-▶▸-◀◂-◷☀-♮♰-❵ ➔-➿⟅⟆⟦-⟯⠀-⣿⦃-⦘⧘-⧛⧼⧽⬀-⬯ ⭅⭆⭍-⭳⭶-⮕⮘-⮹⮽-⯈⯊-⯑⯬-⯯⳥-⳪⳯-⳱ ⳹-⳼⳾⳿⵰⵿ⷠ-⸮⸰-⹂⺀-⺙⺛-⻳⼀-⿕ ⿰-⿻ -〄〈-〠〪-〭〰〶〷〽-〿゙゚゠ ・㆐㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉇㉐㉠-㉿㊊-㊰ ㋀-㋾㌀-㏿䷀-䷿꒐-꓆꓾꓿꘍-꘏꙯꙳-꙾ꚞꚟ꛰-꛷ꠂ꠆ꠋꠥꠦ ꠨-꠫꠶-꠹꡴-꡷꣄꣎꣏꣠-꣱꣸-꣺꣼ꤦ-꤯ꥇ-ꥑ ꥟ꦀ-ꦂ꦳ꦶ-ꦹꦼ꧁-꧍꧞꧟ꧥꨩ-ꨮꨱꨲꨵꨶꩃꩌ ꩜-꩟꩷-꩹ꩼꪰꪲ-ꪴꪷꪸꪾ꪿꫁꫞꫟ꫬꫭ꫰ ꫱꫶ꯥꯨ꯫꯭ﬞ﴾﴿﷼﷽-︙︠-﹒﹔-﹡﹣﹨-﹫ !-*,-/:;?@[-]_{}⦅-・¢£ ¦-₩│■○�]

我还没有详尽地测试这些正则表达式,但它们似乎有效。

关于javascript - 需要有关从 PHP 到 Javascript 的正则表达式的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37662465/

相关文章:

javascript - 如何从可点击的行表创建新页面

regex - 使用 Awk 使用正则表达式和循环对字段求和

regex - 合并文本文件中与正则表达式匹配的某些行

Python正则表达式不匹配完整捕获组

javascript - 将元素放置在容器中

javascript - 使用 setInterval 对其自身进行变量计算

javascript - Chrome 扩展 : store data on background

javascript - react-syntax-highlighter 中的高亮行

regex - 检查字符串是否与 Bash 脚本中的正则表达式匹配

regex - Perl 正则表达式插值