Periksa apakah string alfanumerik atau alfanumerik + beberapa karakter yang diizinkan
Metode alfanumerik tercepat mungkin seperti yang disebutkan di: Cara terbaik untuk memeriksa alfanumerik dalam Javascript karena beroperasi pada rentang angka secara langsung.
Kemudian, untuk memungkinkan beberapa karakter tambahan lain secara masuk akal kita bisa menempatkan mereka dalamSet
untuk pencarian cepat.
Saya percaya bahwa implementasi ini akan menangani pasangan pengganti dengan benar.
#!/usr/bin/env node
const assert = require('assert');
const char_is_alphanumeric = function(c) {
let code = c.codePointAt(0);
return (
// 0-9
(code > 47 && code < 58) ||
// A-Z
(code > 64 && code < 91) ||
// a-z
(code > 96 && code < 123)
)
}
const is_alphanumeric = function (str) {
for (let c of str) {
if (!char_is_alphanumeric(c)) {
return false;
}
}
return true;
};
// Arbitrarily defined as alphanumeric or '-' or '_'.
const is_almost_alphanumeric = function (str) {
for (let c of str) {
if (
!char_is_alphanumeric(c) &&
!is_almost_alphanumeric.almost_chars.has(c)
) {
return false;
}
}
return true;
};
is_almost_alphanumeric.almost_chars = new Set(['-', '_']);
assert( is_alphanumeric('aB0'));
assert(!is_alphanumeric('aB0_-'));
assert(!is_alphanumeric('aB0_-*'));
assert(!is_alphanumeric('你好'));
assert( is_almost_alphanumeric('aB0'));
assert( is_almost_alphanumeric('aB0_-'));
assert(!is_almost_alphanumeric('aB0_-*'));
assert(!is_almost_alphanumeric('你好'));
GitHub hulu .
Diuji dalam Node.js v10.15.1.