Created
August 13, 2018 10:14
-
-
Save doxas/53f2baf8574361cbe2c2d1ab5f948a0c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function checkExistsFile(a, b){ | |
// 空白等が指定されていないか | |
if(a == null || a === '' || b == null || b === ''){return false;} | |
let arrA = Array.from(a); | |
let arrB = Array.from(b); | |
// サロゲートペアを考慮した上での文字数が一致しているか | |
if(arrA.length === 0 || arrA.length !== arrB.length || arrB.length === 0){return false;} | |
// ループで位置文字ずつ一致状況を調べる | |
let flag = true; | |
for(let i = 0; i < arrA.length; ++i){ | |
let mulA = arrA[i].match(/[\x01-\x7E]/) == null; | |
let mulB = arrB[i].match(/[\x01-\x7E]/) == null; | |
// 全角同士、あるいは半角同士であるか | |
if(mulA !== mulB){return false;} | |
// 全角同士なら半角に変換する | |
if(mulA === true){ | |
arrA[i] = String.fromCharCode(arrA[i].charCodeAt(0) - 0xFEE0); | |
arrB[i] = String.fromCharCode(arrB[i].charCodeAt(0) - 0xFEE0); | |
} | |
// 大文字に統一する | |
arrA[i] = arrA[i].toUpperCase(); | |
arrB[i] = arrB[i].toUpperCase(); | |
// 最終一致確認 | |
flag = flag && (arrA[i] === arrB[i]); | |
if(flag !== true){return false;} | |
} | |
// ここまで return しなかったということは一致しているとみなせる | |
return true; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment