我们可以使用正则来检测字符串是否包含汉字。
下面是一段匹配汉字表达式:
/[\u4E00-\u9FCC\u3400-\u4DB5\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|[\uD86A-\uD86C][\uDC00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]/
它可以正常使用,但不够优雅。幸运的是,有一个更简单的解决方案:
let pattern = /\p{Script=Han}/u
!!'你好'.match(pattern) // true
更多资料
Javascript unicode string, chinese character but no punctuation