我有这个正则表达式模式,这非常简单,它验证提供的字符串是否为“alpha”(大写和小写):
var pattern = /^[a-zA-Z]+$/gi;
当我触发pattern.test('Zlatan Omerovic')
时,它会返回true
,但是如果我:
pattern.test('Zlatan Omerović');
它返回false
,但我的验证失败。
在波斯尼亚语中,我们有这些特定的字符:
š đ č ć ž
大写:
Š Đ Č Ć Ž
是否可以使用JavaScript正则表达式验证这些字符(两种情况)?
答案 0 :(得分:5)
当然,您可以将这些字符添加到您匹配的字符列表中。此外,由于您正在进行不区分大小写的匹配(i
标志),因此您不需要大写字符。
var pattern = /^[a-zšđčćž ]+$/gi;
在这里小提琴:http://jsfiddle.net/ryanbrill/KB74b/
这是一个替代模式,它使用unicode表示,这可能更好(例如,如果文件没有使用正确的编码保存,则嵌入字符将不起作用)
var pattern = /^[a-z\u0161\u0111\u010D\u0107\u017E ]+$/gi;
答案 1 :(得分:2)
a-zA-Z
就是这样,并以英语为中心:abcdefghijklmnopqrstuvwxyz
。遗憾的是,使用JavaScript的正则表达式,如果要测试其他字母字符,则必须专门指定它们。 JavaScript没有对区域设置敏感的" alpha"定义。要包含非英语字母字符,您必须故意包含它们。您可以按字面意思(例如,在正则表达式中包含š
)或使用Unicode转义序列(例如\u0161
)。如果有问题的其他波斯尼亚字母字符具有连续范围,您也可以使用-
表示法,但它必须与a-z
分开,后者以英语术语定义。< / p>
答案 2 :(得分:1)
要在测试结果中包含我所做的五个符号的第一个(基于S的)符号:
var pattern = /^[a-zA-Z\u0160-\u0161]+$/g;
尝试以这种方式添加所需的所有符号;)