जांचें कि क्या स्ट्रिंग अल्फ़ान्यूमेरिक या अल्फ़ान्यूमेरिक + कुछ अनुमत वर्ण हैं
सबसे तेज़ अल्फ़ान्यूमेरिक विधि के रूप में उल्लेख किया गया है: जावास्क्रिप्ट में अल्फ़ान्यूमेरिक जांच का सबसे अच्छा तरीका है क्योंकि यह सीधे संख्या सीमाओं पर संचालित होता है।
फिर, कुछ अन्य अतिरिक्त वर्ण sanely हम सिर्फ उन्हें रख सकते हैं अनुमति देने के लिए एक में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('你好'));
गिटहब ऊपर ।
Node.js v10.15.1 में परीक्षण किया गया।