/* * /////////////// ///////////_\\ * // || \\ * // || || * // || || * // || || * // || // * // ||/////////_\\ * // || \\ * // || || * // || || * // || || * // || || * // || || * /////////////// ||///////////// * */
判断输入的内容是否是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...