उपयोगकर्ता अपना नाम टाइप करने से पहले मैं चेक (अगर) डालना चाहता हूं, लेकिन यह काम नहीं करता है। मैं अभी भी इनपुट में नंबर डाल सकता हूं। क्या गलत है?

var name1 = prompt('enter name');
var surname = prompt('enter surname');
var patronymic = prompt('enter secondname');
var fullName = name1 + " " + surname + " " + patronymic;


if (typeof(name1) === "number" || typeof(surname) === "number"|| typeof(patronymic) === "number") {
    do {
        alert('wrong, try again');
        name1 = prompt('enter name');
        surname = prompt('enter surname');
        patronymic = prompt('enter ');
    }
    while (typeof(name1) === "string" && typeof(surname) === "string" && typeof(patronymic) === "string");
}

alert("U " + fullName);
0
gunniq 16 जिंदा 2021, 12:00

3 जवाब

सबसे बढ़िया उत्तर

typeof(name1) === "number" हमेशा name1 के रूप में गलत होगा क्योंकि प्रॉम्प्ट इनपुट स्ट्रिंग हमेशा स्ट्रिंग होगी, यदि खाली नहीं है (जांचें propmt दस्तावेज़ इसके रिटर्न प्रकार के लिए)। कृपया इस सुधार की जांच करें, हम यह जांचने के लिए regex रेगुलर एक्सप्रेशन का उपयोग कर सकते हैं कि इनपुट एक संख्या है या नहीं।

कृपया isNumber फ़ंक्शन और टिप्पणियों की जांच करें।

var name1 = prompt('enter name');
var surname = prompt('enter surname');
var patronymic = prompt('enter secondname');


// a function to check whether the input string is number
function isNumber(str) {
  return !!( // !! symbol is to cast a variable to be a boolean (true or false) value
    str && // check whether str is null, if it is then we'll return false, as null is not a number
    str.match(/^\d+$/)); // use regular expression to check whether the input only contains digits. Please check the reference posts in my answer for more information about regex
}

if (isNumber(name1) || isNumber(surname) || isNumber(patronymic)) {
  do {
    alert('wrong, try again');
    name1 = prompt('enter name');
    surname = prompt('enter surname');
    patronymic = prompt('enter ');
  }
  while (isNumber(name1) || isNumber(surname) || isNumber(patronymic));
}
var fullName = name1 + " " + surname + " " + patronymic;

alert("U " + fullName);

अधिक संदर्भ

1
マークさん 16 जिंदा 2021, 12:16

प्रॉम्प्ट हमेशा एक स्ट्रिंग लौटाएं। यदि आपने कोई संख्या दर्ज की है तो यह एक स्ट्रिंग के रूप में चर पर भी वापस आ जाती है

स्ट्रिंग में संख्याओं की जांच के लिए आप निम्न विधि का उपयोग कर सकते हैं।

var name = prompt('Enter');
isNaN(Number(name)) //this will return false if name is a number
0
Kavinda Shehan Rajapakshe 16 जिंदा 2021, 12:22

संख्याओं की जांच के लिए नियमित अभिव्यक्ति का प्रयोग करें।

var name1;
var surname;
var patronymic;
name1= prompt('enter name');
while(/\d/.test(name1)){
    alert('wrong, try again');
    name1= prompt('enter name');
}
surname = prompt('enter surname');
while(/\d/.test(surname)){
    alert('wrong, try again');
    surname= prompt('enter surname');
}
patronymic = prompt('enter secondname');
while(/\d/.test(patronymic)){
    alert('wrong, try again');
    patronymic= prompt('enter secondname');
}
var fullName = name1 + " " + surname + " " + patronymic;
alert("U " + fullName);
0
Suprit Beck 16 जिंदा 2021, 12:26