/* * /////////////// ///////////_\\ * // || \\ * // || || * // || || * // || || * // || // * // ||/////////_\\ * // || \\ * // || || * // || || * // || || * // || || * // || || * /////////////// ||///////////// * */
判斷輸入的內容是否是2b(兩個b) -- orzjavascript
// languages.js // 多語言文件 module.exports = { pure: ['true', 'false'], English: ['Congratulations, it\'s two B!', 'Sorry, not two B!'], //英語 Chinese: ['恭喜,是兩個b!', '對不起,不是兩個b!'], //中文 Classical_Chinese: ['賀,是二b', '悲兮,非二b!'], //文言文 Chinese_Traditional: ['恭喜,是兩個b!', '對不起,不是兩個b!'], //中文繁體 Cantonese: ['恭喜,系兩個b!', '對唔住,唔系兩個b!'], //粵語 Korea: ['축하해, 두 개의 b!', '죄송합니다. 아니, 두 b!'], //韓語 French: ['Félicitations, c\'est deux B!', 'Désolé, pas deux B!'], //法語 German: ['Herzlichen glückwunsch, sind zwei B!', 'Tut Mir leid, nicht zwei B!'], //德語 Japanese: ['おめでとうございます、2つのbです!', 'すみません、2つのbではありません!'], //日語 Italian: ['Congratulazioni, sono Due B!', 'Mi dispiace, non Due B!'], //意大利語 Russian: ['Поздравляем, два б!', 'К сожалению, не два б!'], //俄語 Thai: ['ขอแสดงความยินดี B สอง!', 'ขออภัยไม่สอง B!',], //泰語 Arabic: ['مبروك، وهما ب!', 'عذرا، لا اثنين ب!'], //阿拉伯語, Finnish: ['Onneksi olkoon, kaksi b!', 'Valitettavasti ei kahta b!'] //芬蘭語 }
// is_2b.js /** * @param something {Array | String} * @returns {object} */ var languages = require('./languages.js'); var is_2b = function(something) { // 是不是嚴格模式。嚴格模式的話只能匹配'BB'或'bb'或'Bb'或'bB' // 非嚴格模式的話只要內容中B或b或6出現了兩次,則匹配成功 var strict = true; // 直接在控制檯輸出匹配結果 var isLog = false; // 在控制檯輸出內容可自定義語言,默認'pure',爲true or false // 可選本地化語言,如英語,中文,粵語,文言文,法語等等 var language = 'pure'; var o_p_t = Object.prototype.toString; // 用於驗證輸入是不是數組 var isII = function(p) { return o_p_t.call(p) === '[object Array]'; } // 用於驗證輸入是不是字符串 var isS = function(y) { return o_p_t.call(y) === '[object String]'; } return { // 總出口函數,當輸入是數組,就執行數組匹配函數,當輸入是字符串,就執行字符串匹配函數 two_b: function() { return ( isII(something) && this.II() ) || ( isS(something) && this.S() ); }, // 數組匹配函數 II: function() { // 當嚴格模式打話,直接驗證數組中是不是標準的兩個b。非嚴格模式,走非嚴格模式匹配函數 let ret = strict ? something.join('').toLowerCase() === 'bb' : this.unstrictII(); // 控制檯輸出函數 this.consolelog(ret); return ret; }, // 數組非嚴格模式匹配函數 unstrictII: function() { var IItoString = something.join(''); var reg = /[Bb6]{1}\w*[Bb6]{1}/; return reg.test(IItoString); }, // 字符串匹配函數 S: function() { // 當嚴格模式打話,直接驗證字符串中是不是標準的兩個b。非嚴格模式,走非嚴格模式匹配函數 let ret = strict ? something.toLowerCase() === 'bb' : this.unstrictS(); // 控制檯輸出函數 this.consolelog(ret); return ret; }, // 字符串非嚴格模式匹配函數 unstrictS: function() { var reg = /[Bb6]{1}\w*[Bb6]{1}/; return reg.test(something); }, // 切換爲非嚴格模式,鏈式回調,return this unstrict: function() { strict = false; return this; }, // 控制檯輸出函數 consolelog: function(bool) { // 若是isLog爲true,輸出從語言包匹配的文字 if(isLog) { console.log(bool ? languages[language][0] : languages[language][1]); } }, // 開啓控制檯輸出, lang指定語言 log(lang) { isLog = true; // 若是指定的lang語言在語言包中存在,則切換爲指定語言 for(var l in languages) { if(lang === l) { language = lang; } } //鏈式回調 return this; } } } module.exports = is_2b;
var is2b = require('is_two_b'); is2b('bb').two_b(); // true
is2b('b6s').unstrict().two_b(); // true is2b('b6s').two_b(); // false
// String is2b('bb').two_b(); // true // Array is2b(['b','b']).two_b(); // true
// 原生輸出 is2b('b6s').unstrict().log('pure').two_b(); // true // 英語 is2b('b6s').unstrict().log('English').two_b(); // Congratulations, it's two B! // 粵語 is2b('bs').unstrict().log('Cantonese').two_b(); // 對唔住,唔系兩個b! // 文言文 is2b('bs').unstrict().log('Classical_Chinese').two_b(); // 悲兮,非二b! //韓語 is2b('b6s').unstrict().log('Korea').two_b(); // 축하해, 두 개의 b! ...
支持多國語言(不斷添加)java
英語 -- Englishgit
中文 -- Chinesegithub
文言文 -- Classical_Chinese數組
中文繁體 -- Chinese_Traditional函數
粵語 -- Cantoneseui
韓語 -- Koreathis
法語 -- Frenchprototype
德語 -- Germancode
日語 -- Japanese
意大利語 -- Italian
俄語 -- Russian
泰語 -- Thai
阿拉伯語 -- Arabic
芬蘭語 -- Finnish
若是你看到了這裏,恭喜,你跟我同樣無聊ORZ~
哈哈,貼上github地址:https://github.com/PengJiyuan...