@lazy-cjk/jp-table-convert
Version:
178 lines • 5.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.cjk2jp = exports.zhs2zht = exports.zht2zhs = exports.zht2jp = exports.zhs2jp = exports.jp2zhs = exports.jp2zht = void 0;
exports.zh2jp = zh2jp;
exports.cjk2zht = cjk2zht;
exports.cjk2zhs = cjk2zhs;
const types_1 = require("./types");
const table_1 = require("./table");
const cjk_conv_1 = require("regexp-helper/lib/cjk-conv");
const uni_string_1 = require("uni-string");
const util_1 = require("./util");
// /[\u4E00-\u9FFF\u{20000}-\u{2FA1F}]+/u
const REGEXP_TEST = new RegExp((0, cjk_conv_1._re_cjk_conv)('u').source + '+', 'u');
const defaultOptions = {
safe: true,
};
var _;
(function (_) {
let langs = Object.keys(table_1.TABLE);
// @ts-ignore
langs.forEach(function (from) {
// @ts-ignore
langs.forEach(function (to) {
if (from == to)
return;
_[`${from}2${to}`] = function (str, options) {
if (!REGEXP_TEST.test(str.toString())) {
return str;
}
options = Object.assign({}, defaultOptions, options);
return uni_string_1.UString.split(str, '')
.map(function (char) {
if (options.skip && options.skip.indexOf(char) != -1) {
return char;
}
let c;
if (c = (0, util_1._getdata)(char, from, to, options.safe)) {
return c;
}
return char;
})
.join('');
};
});
});
})(_ || (_ = {}));
/**
* only 只將 日文漢字 => 轉為繁漢字
* @type {IFrom2To}
*/
exports.jp2zht = _.jp2zht;
/**
* only 只將 日文漢字 => 轉為簡漢字
* @type {IFrom2To}
*/
exports.jp2zhs = _.jp2zhs;
/**
* only 簡漢字 => 轉為日漢字
* @type {IFrom2To}
*/
exports.zhs2jp = _.zhs2jp;
/**
* only 只將 繁漢字 => 轉為日文漢字
* @type {IFrom2To}
*/
exports.zht2jp = _.zht2jp;
/**
* only 只將簡繁日 當中共通的 繁漢字 => 轉為簡漢字
* 請勿作為簡繁轉換用
* @type {IFrom2To}
*/
exports.zht2zhs = _.zht2zhs;
/**
* only 只將簡繁日 當中共通的 簡漢字 => 轉為繁漢字
* 請勿作為簡繁轉換用
* @type {IFrom2To}
*/
exports.zhs2zht = _.zhs2zht;
/**
* only 只將簡繁日 當中共通的 簡繁漢字 => 轉為日文漢字
*
* @alias cjk2jp
*
* @param str
* @param {IOptions} options
* @returns {string}
*/
function zh2jp(str, options) {
if (!REGEXP_TEST.test(str.toString())) {
return str;
}
options = Object.assign({}, defaultOptions, options);
return uni_string_1.UString.split(str, '')
.map(function (char) {
if (options.skip && options.skip.indexOf(char) != -1) {
return char;
}
let c;
if (c = (0, util_1._getdata)(char, types_1.KEY_ZHT, types_1.KEY_JP, options.safe)) {
return c;
}
else if (c = (0, util_1._getdata)(char, types_1.KEY_ZHS, types_1.KEY_JP, options.safe)) {
return c;
}
return char;
})
.join('');
}
/**
* only 只將簡繁日 當中共通的 簡繁漢字 => 轉為日文漢字
*
* @alias zh2jp
*
* @param str
* @param {IOptions} options
* @returns {string}
*/
exports.cjk2jp = zh2jp;
/**
* only 只將簡繁日 當中共通的 漢字 => 轉為繁體漢字
* 請勿作為簡繁轉換用
*
* @param str
* @param {IOptions} options
* @returns {string}
*/
function cjk2zht(str, options) {
if (!REGEXP_TEST.test(str.toString())) {
return str;
}
options = Object.assign({}, defaultOptions, options);
return uni_string_1.UString.split(str, '')
.map(function (char) {
if (options.skip && options.skip.indexOf(char) != -1) {
return char;
}
let c;
if (c = (0, util_1._getdata)(char, types_1.KEY_JP, types_1.KEY_ZHT, options.safe)) {
return c;
}
else if (c = (0, util_1._getdata)(char, types_1.KEY_ZHS, types_1.KEY_ZHT, options.safe)) {
return c;
}
return char;
})
.join('');
}
/**
* only 只將簡繁日 當中共通的 漢字 => 轉為簡體漢字
* 請勿作為簡繁轉換用
*
* @param str
* @param {IOptions} options
* @returns {string}
*/
function cjk2zhs(str, options) {
if (!REGEXP_TEST.test(str.toString())) {
return str;
}
options = Object.assign({}, defaultOptions, options);
return uni_string_1.UString.split(str, '')
.map(function (char) {
if (options.skip && options.skip.indexOf(char) != -1) {
return char;
}
let c;
if (c = (0, util_1._getdata)(char, types_1.KEY_JP, types_1.KEY_ZHS, options.safe)) {
return c;
}
else if (c = (0, util_1._getdata)(char, types_1.KEY_ZHT, types_1.KEY_ZHS, options.safe)) {
return c;
}
return char;
})
.join('');
}
exports.default = exports;
//# sourceMappingURL=index.js.map