我正在使用JS Animated Contact Form这一行验证正则表达式:
rx:{".name":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'}, other fields...
我刚刚发现,我不能输入像“Müller”这样的名字。正则表达式不接受这个。我该怎么办,还允许变音符号?
答案 0 :(得分:23)
你应该在你的正则表达式unicode代码中使用\u0080
等字符。
对于德语,我找到了下表:
Zeichen Unicode
------------------------------
Ä, ä \u00c4, \u00e4
Ö, ö \u00d6, \u00f6
Ü, ü \u00dc, \u00fc
ß \u00df
答案 1 :(得分:15)
尝试使用:
/^[\u00C0-\u017Fa-zA-Z'][\u00C0-\u017Fa-zA-Z-' ]+[\u00C0-\u017Fa-zA-Z']?$/
我已将unicode范围\u00C0-\u017F
添加到每个方括号组的开头。
鉴于/^[\u00C0-\u017FA-Za-z]+$/.test("aeiouçéüß")
返回true
,我预计它应该有用。
答案 2 :(得分:0)
\ uXXXX方法的问题是,所有正则表达式都不支持它。例如,Visual C ++不支持它。 在那里,你需要枚举实际的字母。
我建议使用像https://www.regexbuddy.com/这样的工具,它尽可能多地了解各种风格。
答案 3 :(得分:0)
我用过
A-ZA-Z-ÁÀȦÂÄǞǍĂĀÃÅǺǼǢĆĊĈČĎḌḐḒÉÈĖÊËĚĔĒẼE̊ẸǴĠĜǦĞGĢĤḤáàȧâäǟǎăāãåǻǽǣćċĉčďḍḑḓéèėêëěĕēẽe̊ẹǵġĝǧğgģĥḥÍÌİÎÏǏĬĪĨỊĴĶǨĹĻĽĿḼMM̄'NŃNṄN̈ŇN̄ÑŅṊÓÒȮȰÔÖȪǑŎŌÕȬŐỌǾƠíìiîïǐĭīĩịĵķǩĺļľŀḽmm̄ʼnńnṅn̈ňn̄ñņṋóòôȯȱöȫǒŏōõȭőọǿơP̄ŔŘŖŚŜṠŠŞṢŤŢṬṰÚÙÛÜǓŬŪŨŰŮỤẂẀŴẄÝỲŶŸȲỸŹŻŽẒǮp̄ŕřŗśŝṡšşṣťţṭṱúùûüǔŭūũűůụẃẁŵẅýỳŷÿȳỹźżžẓǯßœŒçÇ
几乎支持欧洲的所有字符。 Source of truth
答案 4 :(得分:0)
我想出了不同范围的组合:
[A-Za-zÀ-ž\u0370-\u03FF\u0400-\u04FF]
但是我看到它缺少@SambitD建议的某些字母,请参阅:https://rubular.com/r/2g00QJK4rBS8Y4