检查字符串中的所有字母(来自任何主要口语)是否为大写

时间:2013-10-17 18:41:51

标签: string internationalization tcl

我只想检查字符串中出现的所有字母是否都是大写字母(如果它们有小写和大写变体)。 Tcl的内置过程表现不尽如人意,例如,

string is upper "123A"

返回false,但我希望它返回true。如果A被替换为大写的西里尔字母,或者来自另一个没有案例的流行字母表的字母,我也希望它返回true。我可以简单地过滤掉字符串中的所有非字母,但是当你尝试处理除英语以外的其他语言的字母时,我认为这并不是那么简单。

1 个答案:

答案 0 :(得分:2)

在这种情况下,您不希望string is upper检查字符串是只是大写字母。 (数字不是字母。)

相反,你想做:

set str "123A"
if {$str eq [string toupper $str]} {
    # It's upper-case by your definition...
}