This is a pretty ugly hack, but maybe it will inspire you to something better. leastCJK = ToCharacterCode["⺀"][[1]]; StringMatchQ[#, _?(ToCharacterCode[#][[1]] < leastCJK &)] & /@ {"a", "1", ".", " ", "中", "あ"} > {True, True, True, True, False, False} Note: "⺀" is unicode character U+2E80, CJK RADICAL REPEAT