কোনও ইনপুট স্ট্রিংয়ে জাভাস্ক্রিপ্টে একটি সংখ্যা রয়েছে কিনা তা পরীক্ষা করুন


137

আমার শেষ লক্ষ্যটি একটি ইনপুট ক্ষেত্রটি বৈধ করা। ইনপুট বর্ণানুক্রমিক বা সংখ্যাযুক্ত হতে পারে।


4
এর জন্য আপনার jQuery দরকার নেই।
Vidime বিদাস

আপনার প্রশ্নের শিরোনামটি, "jQuery ইনপুট কেবলমাত্র বর্ণানুক্রমিক অক্ষরের বৈধতা দিন" এর মতো আরও সঠিক কিছুতে সম্পাদনা করুন কারণ আপনার বিবরণ "স্ট্রিংয়ের মধ্যে নম্বরগুলি কীভাবে সন্ধান করতে হবে" তার কোনও উত্তর দেয় না, সুতরাং এটি আমাদের সম্প্রদায়ের জন্য অপ্রাসঙ্গিক অনুসন্ধানের ফলাফলের ফলস্বরূপ। ধন্যবাদ!
জুয়ানমা গেরেরো

প্রশ্নের শিরোনামের বাইরে "jQuery" সম্পাদনা করেছেন এবং "জাভাস্ক্রিপ্ট" দিয়ে প্রতিস্থাপন করেছেন।
ভেকেন

@ ভেকেন, শিরোনামে ট্যাগ লাগানোর দরকার নেই।
স্টারেক্স

@ স্টারেক্স উল্লেখ করেছেন, আমি প্রশ্ন পোস্টারটি যে ফর্ম্যাট দিয়ে শুরু করেছি তা ঠিক রেখে দিচ্ছি।
ভেকেন

উত্তর:


288

যদি আমি ভুল না হয়ে থাকি তবে প্রশ্নটির জন্য "নম্বর রয়েছে", "সংখ্যাটি নয়" প্রয়োজন। তাই:

function hasNumber(myString) {
  return /\d/.test(myString);
}

1
ঠিক আমার যা প্রয়োজন ছিল। ধন্যবাদ
অ্যান্ডি এইচ

এই সমাধানটি 3.2 বা 1e4 এর মতো অ-পূর্ণসংখ্যার সংখ্যা গ্রহণ করে না
এক্কিস

8
এটা করে. কনসোলে চেক ইন করুন: hasNumber ("চেক 3.2 বা 1e4") = সত্য বনাম hasNumber ("নম্বরগুলি চেক করবেন না") = মিথ্যা। কারণ 3.2 এবং 1e4 এ নিজেই সংখ্যা ধারণ করে।
জোন

কেন এই উত্তর শীর্ষে নেই?
রাকেশ নায়ের

এটি ঠিক করা প্রশ্নের উত্তর দেয়।
জোন

108

আপনি জাভাস্ক্রিপ্ট ব্যবহার করে এটি করতে পারেন। জ্যাকুরি বা রেজেক্সের প্রয়োজন নেই

function isNumeric(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

বাস্তবায়ন করার সময়

var val = $('yourinputelement').val();
if(isNumeric(val)) { alert('number'); } 
else { alert('not number'); }

আপডেট: কোনও স্ট্রিংয়ে তার সংখ্যা রয়েছে কিনা তা পরীক্ষা করতে আপনি এটি করতে নিয়মিত প্রকাশ করতে পারেন

var matches = val.match(/\d+/g);
if (matches != null) {
    alert('number');
}

2
matches != nullমানে না undefinedবা nullযখন matches !== nullমানে নির্দিষ্টভাবে নয় nullতবে পাস হয় undefined
Nate

match()একটি অ্যারে বা null। সুতরাং ভাল if (matches !== null)হওয়া উচিত (এবং এটি জেএসহিন্টকে সন্তুষ্ট করবে)) উত্স: বিকাশকারী.মোজিলা.আর.ইন
জেসন

এটি isFinite(parseFloat(n))প্রথম উদাহরণে হওয়া উচিত । isNumeric("5,000")ব্যর্থ।
m.spyratos

@ মি.স্পাইরটোস, ঠিক আছে, isFinite()উত্তীর্ণ হয়েছে যদি উত্তীর্ণ হওয়া মানটি একটি finiteসংখ্যা হয় এবং সংখ্যার 5,000সীমাবদ্ধ সংখ্যা নয় তবে সংখ্যার ফর্ম্যাট স্ট্রিং হয়।
স্টারেক্স

@ স্টারেক্স, আমি সম্মত তবে যদি আপনি ইনপুট হিসাবে ফর্ম্যাট স্ট্রিং সমর্থন করেন না, তবে আপনি কেন পার্স ফ্লোট ইন ব্যবহার করবেন isNaN? আমি হয় পার্স ফ্লোটটি মুছে ফেলা isNaNবা এটি যুক্ত করার isFiniteপাশাপাশি এটি যুক্ত করার পরামর্শ দেব ।
m.spyratos

22
function validate(){    
    var re = /^[A-Za-z]+$/;
    if(re.test(document.getElementById("textboxID").value))
       alert('Valid Name.');
    else
       alert('Invalid Name.');      
}

এটি বুঝতে জন্য পুরো প্রশ্নটি পড়তে হয়েছিল আসলে জিজ্ঞাসিত সঠিক প্রশ্নের উত্তর দেয়। প্রশ্নের শিরোনামটি কিছুটা প্রতারণামূলক।
Nate

9

এটি কোনও উপায়ে বুলেটপ্রুফ নয়, তবে এটি আমার উদ্দেশ্যগুলির জন্য কাজ করেছে এবং সম্ভবত এটি কাউকে সহায়তা করবে।

var value = $('input').val();
 if(parseInt(value)) {
  console.log(value+" is a number.");
 }
 else {
  console.log(value+" is NaN.");
 }

Boolean(parseInt(3)) -> true; Boolean(parseInt("3")) -> true; Boolean(parseInt("three")) -> false
ইলন জিতো

5

জাভাস্ক্রিপ্ট সহ নিয়মিত এক্সপ্রেশন ব্যবহার করা । একটি নিয়মিত এক্সপ্রেশন হ'ল অনুসন্ধানের প্যাটার্ন বর্ণনা করার জন্য একটি বিশেষ পাঠ্য স্ট্রিং, যা / প্যাটার্ন / সংশোধক আকারে লেখা হয় যেখানে "প্যাটার্ন" হ'ল নিয়মিত প্রকাশ, এবং "মোডিফায়ারগুলি" বিভিন্ন বিকল্পের ইঙ্গিতকারী একটি ধারাবাহিক অক্ষর। চরিত্র বর্গ একটি আক্ষরিক খেলা শেষে সবচেয়ে মৌলিক Regex ধারণা। এটি অক্ষরের একটি ছোট ক্রম অক্ষরের বৃহত্তর সেট সাথে মেলে। উদাহরণস্বরূপ, উচ্চ বর্ণের বর্ণমালার পক্ষে দাঁড়াতে পারে এবং কোনও অঙ্কের অর্থ হতে পারে।
         [A-Z]\d

নীচের উদাহরণ থেকে

  • contains_alphaNumericString স্ট্রিংয়ের জন্য এটি অক্ষর বা সংখ্যা (বা) উভয় অক্ষর এবং সংখ্যা ধারণ করে। হাইফেন (-) উপেক্ষা করা হয়
  • onlyMixOfAlphaNumericString এটি স্ট্রিংয়ের জন্য যাচাই করে যে কোনও ক্রমিক ক্রমের অক্ষর এবং সংখ্যা উভয়ই রয়েছে ।

উদাহরণ:

function matchExpression( str ) {
    var rgularExp = {
        contains_alphaNumeric : /^(?!-)(?!.*-)[A-Za-z0-9-]+(?<!-)$/,
        containsNumber : /\d+/,
        containsAlphabet : /[a-zA-Z]/,

        onlyLetters : /^[A-Za-z]+$/,
        onlyNumbers : /^[0-9]+$/,
        onlyMixOfAlphaNumeric : /^([0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+)[0-9a-zA-Z]*$/
    }

    var expMatch = {};
    expMatch.containsNumber = rgularExp.containsNumber.test(str);
    expMatch.containsAlphabet = rgularExp.containsAlphabet.test(str);
    expMatch.alphaNumeric = rgularExp.contains_alphaNumeric.test(str);

    expMatch.onlyNumbers = rgularExp.onlyNumbers.test(str);
    expMatch.onlyLetters = rgularExp.onlyLetters.test(str);
    expMatch.mixOfAlphaNumeric = rgularExp.onlyMixOfAlphaNumeric.test(str);

    return expMatch;
}

// HTML Element attribute's[id, name] with dynamic values.
var id1 = "Yash", id2="777", id3= "Yash777", id4= "Yash777Image4"
    id11= "image5.64", id22= "55-5.6", id33= "image_Yash", id44= "image-Yash"
    id12= "_-.";
console.log( "Only Letters:\n ", matchExpression(id1) );
console.log( "Only Numbers:\n ", matchExpression(id2) );
console.log( "Only Mix of Letters and Numbers:\n ", matchExpression(id3) );
console.log( "Only Mix of Letters and Numbers:\n ", matchExpression(id4) );

console.log( "Mixed with Special symbols" );
console.log( "Letters and Numbers :\n ", matchExpression(id11) );
console.log( "Numbers [-]:\n ", matchExpression(id22) );
console.log( "Letters :\n ", matchExpression(id33) );
console.log( "Letters [-]:\n ", matchExpression(id44) );

console.log( "Only Special symbols :\n ", matchExpression(id12) );

আউট পুট:

Only Letters:
  {containsNumber: false, containsAlphabet: true, alphaNumeric: true, onlyNumbers: false, onlyLetters: true, mixOfAlphaNumeric: false}
Only Numbers:
  {containsNumber: true, containsAlphabet: false, alphaNumeric: true, onlyNumbers: true, onlyLetters: false, mixOfAlphaNumeric: false}
Only Mix of Letters and Numbers:
  {containsNumber: true, containsAlphabet: true, alphaNumeric: true, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: true}
Only Mix of Letters and Numbers:
  {containsNumber: true, containsAlphabet: true, alphaNumeric: true, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: true}
Mixed with Special symbols
Letters and Numbers :
  {containsNumber: true, containsAlphabet: true, alphaNumeric: false, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: false}
Numbers [-]:
  {containsNumber: true, containsAlphabet: false, alphaNumeric: false, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: false}
Letters :
  {containsNumber: false, containsAlphabet: true, alphaNumeric: false, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: false}
Letters [-]:
  {containsNumber: false, containsAlphabet: true, alphaNumeric: true, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: false}
Only Special symbols :
  {containsNumber: false, containsAlphabet: false, alphaNumeric: false, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: false}

নিয়মিত প্রকাশের সাথে জাভা প্যাটার্নের মিল M


4

কোনও গৃহস্থালী ছাড়াই ওভারকিলি ছাড়াই কোনও নম্বর হ'ল কিনা তা পরীক্ষা করে নেওয়া দরকার ap

const s = "EMA618"

function hasInt(me){
  let i = 1,a = me.split(""),b = "",c = "";
  a.forEach(function(e){
   if (!isNaN(e)){
     console.log(`CONTAIN NUMBER «${e AT POSITION ${a.indexOf(e)} => TOTAL COUNT ${i}`)
     c += e
     i++
   } else {b += e}
  })
  console.log(`STRING IS «${b}», NUMBER IS «${c}»`)
  if (i === 0){
    return false
    // return b
  } else {
    return true
    // return +c
  }
}


hasInt(s)


2

এটি যাচাই করার একটি উপায় হ'ল স্ট্রিংটির মধ্য দিয়ে লুপ করা এবং আপনি কোনও সংখ্যায় আঘাত করলে সত্য (বা আপনি যা চান তার উপর নির্ভর করে মিথ্যা) ফেরত আসা।

function checkStringForNumbers(input){
    let str = String(input);
    for( let i = 0; i < str.length; i++){
              console.log(str.charAt(i));
        if(!isNaN(str.charAt(i))){           //if the string is a number, do the following
            return true;
        }
    }
}

0

আপনি জাভাস্ক্রিপ্ট ব্যবহার করে এটি করতে পারেন। জ্যাকুরি বা রেজেক্সের প্রয়োজন নেই

function isNumeric(n) {
  if(!isNaN(n))
    {
     return true
    }
  else
   {
    return false
   }
}

14
Overkill। স্রেফ হতে পারেfunction isNumeric(n) { return !isNaN(n); }
লুকা স্টেব

এটি কোনও চরিত্রের সংখ্যা কিনা তাও পরীক্ষা করে না। তবে আমি এর দ্বারা অনুপ্রাণিত কোনও সমাধানের কথা ভাবতে পারি।
টাইলার লাজেনবি

0

এই কোডটি "প্রদত্ত স্ট্রিংগুলিতে নম্বরগুলি সনাক্ত করতে" সহায়তা করে যখন সংখ্যাগুলি পাওয়া গেলে এটির কার্য সম্পাদন বন্ধ করে দেয়।

function hasDigitFind(_str_) {
  this._code_ = 10;  /*When empty string found*/
  var _strArray = [];

  if (_str_ !== '' || _str_ !== undefined || _str_ !== null) {
    _strArray = _str_.split('');
    for(var i = 0; i < _strArray.length; i++) {
      if(!isNaN(parseInt(_strArray[i]))) {
        this._code_ = -1;
        break;
      } else {
        this._code_ = 1;
      }
    }

  }
  return this._code_;
}

0

parseInt যখন পূর্ণসংখ্যার প্রতিনিধিত্ব করে স্ট্রিং শুরু হয় তখন পূর্ণসংখ্যা সরবরাহ করে:

(parseInt '1a')  is  1

.. সম্ভবত:

isInteger = (s)->
  s is (parseInt s).toString()  and  s isnt 'NaN'

(isInteger 'a') is false
(isInteger '1a') is false
(isInteger 'NaN') is false
(isInteger '-42') is true

আমার কফিস্ক্রিপ্ট ক্ষমা করুন।


-1

আপনি লোডাশ চেষ্টা করে দেখতে পারেন:

const isNumeric = number => 
  _.isFinite(_.parseInt(number)) && !_.isNaN(_.parseInt(number))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.