Browse Source

:bug: 中文检测错误

visuddhinanda 4 years ago
parent
commit
f876661e4d
2 changed files with 23 additions and 8 deletions
  1. 21 3
      app/public/js/comm.js
  2. 2 5
      app/studio/js/editor.js

+ 21 - 3
app/public/js/comm.js

@@ -248,12 +248,30 @@ function str_diff(str1, str2) {
 function testCJK(string){
 	/*
 	\u4e00-\u9fa5 (中文)
+	U+4E00至U+9FFF[1]
+	U+3400至U+4DBF[2](扩展A)
+	U+20000至U+2A6DF[3](扩展B)
+	U+2A700至U+2B73F[4](扩展C)
+	U+2B740至U+2B81F[5](扩展D)
+	U+2B820至U+2CEAF[6](扩展E)
+	U+F900至U+FAFF[7](兼容)
+	U+2F800至U+2FA1F[8](兼容补充)
+	U+2F00至U+2FDF[9](康熙部首)
+	U+2E80至U+2EFF[10](部首补充)
+	U+31C0至U+31EF[11](笔画)
+
 	\x3130-\x318F (韩文
 	\xAC00-\xD7A3 (韩文)
-	\u0800-\u4e00 (日文)
+	Unicode范围	U+AC00-U+D7A3,
+	U+1100-U+11FF,
+	U+3131-U+318E,
+	U+FFA1-U+FFDC
+
+	\u0800-\u4e00 (日文)ひらがな平仮名
+	U+4E00–U+9FBF 汉字; U+3040–U+309F 平假名; U+30A0–U+30FF 片假名
 	*/
-	reg = /[\u4e00-\u9fa5]+/;//ja
-	return reg.test()
+	reg = /[\u4e00-\u9fa5]+/;//cn
+	return reg.test(string);
 
 }
 

+ 2 - 5
app/studio/js/editor.js

@@ -3541,11 +3541,8 @@ function refreshPartMeaningSelect() {
 }
 //编辑窗口拆分意思复制到整体意思
 function copy_part_mean_to_mean() {
-	let isCJK = false;
-	for (const iterator of g_arrPartMean) {
-		isCJK = testCJK(iterator);
-	}
-	if(isCJK){
+	let meaning = g_arrPartMean.join("");
+	if(testCJK(meaning)){
 		$("#input_meaning").val(removeFormulaB(g_arrPartMean.join(""), "[", "]"));
 	}else{
 		$("#input_meaning").val(removeFormulaB(g_arrPartMean.join(" "), "[", "]"));