JQuery - 中英文數字計算及判斷是否目前為中文輸入狀態
為了要做一個toolkit,
我要判斷他是否是正在中文輸入拼字狀態,與非拼字狀態,
及判斷中文輸入一字的時候,才做toolkit顯示,英文輸入三字的時候才顯示
我參考了兩個文字
通过js判断当前输入法是拼音还是英文输入法
http://www.sohu.com/a/159713394_99897596
檢查輸入長度(中文及英文字數)
http://kevin0523.pixnet.net/blog/post/9496548-%E6%AA%A2%E6%9F%A5%E8%BC%B8%E5%85%A5%E9%95%B7%E5%BA%A6%28%E4%B8%AD%E6%96%87%E5%8F%8A%E8%8B%B1%E6%96%87%E5%AD%97%E6%95%B8%29
先判斷他是不是拼字狀態
var isPinyin = false;
$('.input_keyword').on('compositionstart',function(e){
isPinyin = true;
});
$('.input_keyword').on('compositionend',function(e){
isPinyin = false;
showToolkit(this);
});
$('.input_keyword').on('input',function(e){
if(!isPinyin) {
showToolkit(this);
}
});
function showToolkit(source) {
}
在來檢查輸入字串是否足夠做查詢關鍵字
function getChineseLength(source) {
var tmp="";
tmp=$(source).val();
tmp=tmp.replace(/[A-Za-z0-9]/g,"");
tmp=tmp.replace(/[^\u0000-\u00ff]/g," a ");
tmp=tmp.replace(/\s/g,"");
return tmp.length;
}
function getEnglishLength(source) {
var tmp="";
tmp=$(source).val();
tmp=tmp.replace(/[^\u0000-\u00ff]/g,"");
return tmp.length;
}
function showToolkit(source){
var cLen = getChineseLength(source);
var eLen = getEnglishLength(source);
if(!(eLen>=3 || cLen>=1)){
return;
}
}
這樣就能避免中文正在輸入拼音時卻送出了查詢。