문자열이 영숫자인지 영숫자인지 + 허용되는 문자인지 확인하십시오.
가장 빠른 영숫자 방법은 다음과 같이 언급 될 수 있습니다. Javascript 가 숫자 범위에서 직접 작동하므로 영숫자 확인하는 가장 좋은 방법 입니다.
그런 다음 몇 가지 추가 문자를 이상하게 허용 하기Set
위해 빠른 조회를 위해 문자를 넣을 수 있습니다 .
이 구현은 대리 쌍을 올바르게 처리한다고 생각 합니다.
#!/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 업스트림 .
Node.js v10.15.1에서 테스트되었습니다.