正则表达式不适用于至少一个欧洲角色

San*_*ool 1 javascript regex

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

我尝试过如下:

var check = "abc";

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

它应该只有至少具有欧洲语言特征才有效.如果只是数字,不应该工作.请指导我们!!

Wik*_*żew 9

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

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

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

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

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

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

波兰只快报:[a-pr-uwy-zA-PR-UWY-Z?????ó????????Ó???](注意没有Q,VX在波兰,但如果你想允许所有英文字母为好,使用[a-zA-Z?????ó????????Ó???])

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

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

还有一些......

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

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

希腊和科普特+希腊扩展:[a-zA-ZæøåÆØÅ](链接)

俄罗斯:[\u0370-\u03FF\u1F00-\u1FFF](链接)

乌克兰:[?-??-???](链接)

塞尔维亚语(西里尔文):[?-??-???????????????](链接)

保加利亚(俄语字母的子集): [?-??-???-???-??-???-??](链接)

白俄罗斯脚本范围:[?-?????-????](链接)

罗马尼亚:[??-??-??-???-??-??????](链接)