正则表达式不适用于至少一个欧洲字符

IT技术 javascript regex
2021-01-26 03:35:34

我正在检查我的字符串是否包含至少一个欧洲语言的字符(例如:德语、西班牙语、英语等...)

我试过如下:

var check = "abc";

if(check.match(/^[a-zA-ZäöåÄÖÅ]+$/)){
               alert("if");
               }
   else{
   alert("else");
   }

它只有在至少具有欧洲语言字符时才应该有效。如果只有数字,则不应该工作。请各位大侠指教!!

1个回答

您只需要删除锚点和量词并使用test

alert(/(?![×÷])[A-Za-zÀ-ÿ]/.test("ß1111"))
alert(/(?![×÷])[A-Za-zÀ-ÿ]/.test("ö"))
alert(/(?![×÷])[A-Za-zÀ-ÿ]/.test("12345"))

(?![×÷])[A-Za-zÀ-ÿ]正则表达式是对Useful ASCII Ranges 中提供正则表达式的改编它将捕获所有拉丁字符和重音字符。

您可以使用更多与语言相关的字符范围

法语字母:[a-zA-ZàâäôéèëêïîçùûüÿæœÀÂÄÔÉÈËÊÏΟÇÙÛÜÆŒ]

德语字母:[a-zA-ZäöüßÄÖÜ]

波兰字母只有:[a-pr-uwy-zA-PR-UWY-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ]注意没有QVX在波兰,但如果你想允许所有英文字母为好,使用[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ]

意大利字母:[a-zA-ZàèéìíîòóùúÀÈÉÌÍÎÒÓÙÚ]

西班牙语字母:[a-zA-ZáéíñóúüÁÉÍÑÓÚÜ]

还有一些……

瑞典[a-zA-ZäöåÄÖÅ]链接

挪威[a-zA-ZæøåÆØÅ]链接

丹麦(同挪威): [a-zA-ZæøåÆØÅ]链接

希腊和科普特+希腊扩展[\u0370-\u03FF\u1F00-\u1FFF]链接

俄罗斯[а-яА-ЯёЁ]链接

乌克兰[а-щА-ЩЬьЮюЯяЇїІіЄєҐґ]链接

塞尔维亚语(西里尔文)[А-ИК-ШЂЈ-ЋЏа-ик-шђј-ћџ]链接

保加利亚(俄语字母的子集): [а-ъьюяА-ЪЬЮЯ]链接

白俄罗斯脚本范围:[ёа-зй-шы-яЁА-ЗЙ-ШЫІіЎў]链接

罗马尼亚[a-zA-ZĂÂÎȘȚăâîșț]链接

谢谢你们的快速响应。你是好哥们!!
2021-03-22 03:35:34
@Jongware:是的,我明白你的意思。我现在正在添加更多脚本范围。
2021-03-24 03:35:34
明白了,伙计 /[a-zA Z\x7f-\xff]/ 它对我有用。我尝试过这个!!非常感谢您的宝贵时间!!
2021-03-25 03:35:34
@stribizhev:实际上,乌克兰语将撇号 ( ')视为字母,而不是标点符号,因此您也应该将其包含在内。
2021-04-02 03:35:34
好的,我看到您正在寻找在欧洲语言中使用的所有字符。这不是一项微不足道的任务。您可以检查正则表达式:匹配 Unicode 块范围以构建您需要的范围,仅选择您要检查的那些脚本。
2021-04-03 03:35:34