मुझे माफ करना, कोई विवाद नहीं। लेकिन समुदाय के बढ़ने के लिए जैसा कि इन वर्षों में मुझे बड़ा हुआ है, कुछ नोट्स बनाना अच्छा है।
असली अल्फ़ान्यूमेरिक स्ट्रिंग की "0a0a0a0b0c0d"
तरह है "000000"
या नहीं की तरह है "qwertyuio"
।
मैंने यहां पढ़े सभी उत्तर, true
दोनों मामलों में वापस आ गए। और मुझे माफ कर दो, IMHO, यह सही नहीं है ।
यदि मैं जांचना चाहता हूं कि क्या मेरा "00000"
स्ट्रिंग अल्फ़ान्यूम है, तो मेरा "मानव" उत्तर निर्विवाद रूप से FALSE है।
क्यों? सरल। मुझे कोई पत्र वर्ण नहीं मिल रहा है। तो, एक साधारण संख्यात्मक स्ट्रिंग है [0-9]
।
दूसरी ओर, अगर मैं अपने "abcdefg"
स्ट्रिंग की जांच करना चाहता था, तो मेरा "मानव" उत्तर भी FALSE है। मुझे संख्याएँ दिखाई नहीं देतीं, इसलिए यह अल्फ़ान्यूमेरिक नहीं है। बस अल्फ़ाज़ हैं [a-zA-Z]
।
माइकल मार्टिन-Smucker है जवाब रोशन किया गया है।
हालाँकि उनका उद्देश्य रेक्स के बजाय बेहतर प्रदर्शन हासिल करना था। यह सच है, निम्न स्तर के तरीके का उपयोग करना बेहतर परफॉमेंस है। लेकिन परिणाम वही है। तार "0123456789"
(केवल संख्यात्मक), "qwertyuiop"
(केवल अल्फा) और "0a1b2c3d4f4g"
(अल्फ़ान्यूमेरिक) TRUE
अल्फ़ान्यूमेरिक के रूप में लौटते हैं । उसी रेगेक्स /^[a-z0-9]+$/i
रास्ता। रीगेक्स काम नहीं करता है इसका कारण स्पष्ट रूप में सरल है। वाक्य-विन्यास []
इंगित करता है या नहीं, और । तो, अगर यह केवल संख्यात्मक है या यदि यह केवल अक्षर है, तो रेगेक्स रिटर्न true
।
लेकिन, माइकल मार्टिन-स्मकर का जवाब अभी भी रोशन था। मेरे लिए। इसने मुझे "निम्न स्तर" पर सोचने की अनुमति दी, एक वास्तविक फ़ंक्शन बनाने के लिए जो अस्पष्ट रूप से एक अल्फ़ान्यूमेरिक स्ट्रिंग को संसाधित करता है। मैंने इसे PHP रिलेटिव फंक्शन की तरह कहा ctype_alnum
( एडिट 2020-02-18: कहां, हालांकि, यह चेक करता है या नहीं और )।
यहाँ कोड है:
function ctype_alnum(str) {
var code, i, len;
var isNumeric = false, isAlpha = false; //I assume that it is all non-alphanumeric
for (i = 0, len = str.length; i < len; i++) {
code = str.charCodeAt(i);
switch (true){
case code > 47 && code < 58: // check if 0-9
isNumeric = true;
break;
case (code > 64 && code < 91) || (code > 96 && code < 123): //check if A-Z or a-z
isAlpha = true;
break;
default: // not 0-9, not A-Z or a-z
return false; //stop function with false result, no more checks
}
}
return isNumeric && isAlpha; //return the loop results, if both are true, the string is certainly alphanumeric
};
... और यहाँ डेमो है
मैं इस चर्चा में आया क्योंकि मैं PHP फ़ंक्शन के लिए जावास्क्रिप्ट में एक विकल्प की तलाश कर रहा था। मुझे इसका उत्तर "रेडी-टू-गो" नहीं मिला, लेकिन जैसा कि अक्सर स्टैकओवरफ़्लो पर होता है, ज्ञान और एक दूसरे के साथ तुलना की अवधारणा कुछ उदात्त है, जो आपको किसी के उत्तर के बारे में सोचने और एक साथ समाधान खोजने के लिए ले जाती है जो आप थे तलाश है, लेकिन आपको नहीं लगा कि आप इसे जानते हैं।
और शेयर करे!
श्रेष्ठ
ऑस्कर