cnf-qrcode
Version:
generate qrcode,support svg base64 utf8
32 lines (25 loc) • 1.06 kB
JavaScript
const numeric = '[0-9]+';
const alphanumeric = '[A-Z $%*+\\-./:]+';
let kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|'
+ '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|'
+ '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|'
+ '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+';
kanji = kanji.replace(/u/g, '\\u');
const byte = `(?:(?![A-Z0-9 $%*+\\-./:]|${kanji})(?:.|[\r\n]))+`;
export const KANJI = new RegExp(kanji, 'g');
export const BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\-./:]+', 'g');
export const BYTE = new RegExp(byte, 'g');
export const NUMERIC = new RegExp(numeric, 'g');
export const ALPHANUMERIC = new RegExp(alphanumeric, 'g');
const TEST_KANJI = new RegExp(`^${kanji}$`);
const TEST_NUMERIC = new RegExp(`^${numeric}$`);
const TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\-./:]+$');
export function testKanji(str) {
return TEST_KANJI.test(str);
}
export function testNumeric(str) {
return TEST_NUMERIC.test(str);
}
export function testAlphanumeric(str) {
return TEST_ALPHANUMERIC.test(str);
}