Tujuan akhir saya adalah memvalidasi bidang masukan. Masukan dapat berupa alfabet atau numerik.
javascript
string
numbers
validation
Udara SS Liyanage
sumber
sumber
Jawaban:
Jika saya tidak salah, pertanyaannya membutuhkan "berisi angka", bukan "adalah angka". Begitu:
function hasNumber(myString) { return /\d/.test(myString); }
sumber
Anda dapat melakukan ini menggunakan javascript. Tidak perlu Jquery atau Regex
function isNumeric(n) { return !isNaN(parseFloat(n)) && isFinite(n); }
Saat menerapkan
var val = $('yourinputelement').val(); if(isNumeric(val)) { alert('number'); } else { alert('not number'); }
Pembaruan: Untuk memeriksa apakah sebuah string memiliki angka di dalamnya, Anda dapat menggunakan ekspresi reguler untuk melakukannya
var matches = val.match(/\d+/g); if (matches != null) { alert('number'); }
sumber
matches != null
berarti tidakundefined
ataunull
sementaramatches !== null
berarti secara khusus tidaknull
tetapi lewatundefined
.match()
mengembalikan array ataunull
. Jadiif (matches !== null)
seharusnya baik-baik saja (dan itu akan menyenangkan JSHint.) Sumber: developer.mozilla.org/en/docs/Web/JavaScript/Reference/…isFinite(parseFloat(n))
di contoh pertama.isNumeric("5,000")
gagal.isFinite()
memberikan true jika nilai yang diteruskan adalahfinite
angka dan angka5,000
adalah string berformat angka bukan angka terbatas.isNaN
? Saya akan menyarankan untuk menghapus parse float dariisNaN
atau menambahkannyaisFinite
juga agar terdiri.function validate(){ var re = /^[A-Za-z]+$/; if(re.test(document.getElementById("textboxID").value)) alert('Valid Name.'); else alert('Invalid Name.'); }
sumber
Ini bukan antipeluru dengan cara apa pun, tetapi itu berhasil untuk tujuan saya dan mungkin itu akan membantu seseorang.
var value = $('input').val(); if(parseInt(value)) { console.log(value+" is a number."); } else { console.log(value+" is NaN."); }
sumber
Boolean(parseInt(3)) -> true; Boolean(parseInt("3")) -> true; Boolean(parseInt("three")) -> false
Menggunakan Ekspresi Reguler dengan JavaScript . Ekspresi reguler adalah string teks khusus untuk mendeskripsikan pola penelusuran, yang ditulis dalam bentuk / pola / pengubah di mana "pola" adalah ekspresi reguler itu sendiri, dan "pengubah" adalah rangkaian karakter yang menunjukkan berbagai opsi.
Kelas karakter adalah konsep ekspresi reguler paling dasar setelah pencocokan literal. Itu membuat satu urutan kecil karakter cocok dengan kumpulan karakter yang lebih besar. Misalnya,
[A-Z]
bisa berarti alfabet huruf besar, dan\d
bisa berarti digit apa saja.Dari contoh di bawah ini
contains_alphaNumeric
«Ia memeriksa apakah string berisi huruf atau angka (atau) huruf dan angka. Tanda hubung (-) diabaikan .onlyMixOfAlphaNumeric
«Ia memeriksa string yang berisi huruf dan angka hanya dengan urutan urutan apa pun.Contoh:
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) );
Keluaran:
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}
Pencocokan Pola java dengan Ekspresi Reguler.
sumber
Untuk menguji apakah ada karakter yang berupa angka, tanpa pembunuhan berlebihan❓, untuk diadaptasi sesuai kebutuhan.
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)
sumber
Inilah yang Anda butuhkan.
var hasNumber = /\d/; hasNumber.test("ABC33SDF"); //true hasNumber.test("ABCSDF"); //false
sumber
Salah satu cara untuk memeriksanya adalah dengan mengulang melalui string dan mengembalikan true (atau false tergantung pada apa yang Anda inginkan) saat Anda menekan angka.
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; } } }
sumber
parseInt
menyediakan integer ketika string dimulai dengan representasi integer:(parseInt '1a') is 1
..jadi mungkin:
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
Maafkan CoffeeScript saya.
sumber
parseInt('10m') /* returns 10*/
akan melakukan trik jika string dimulai dengan angka. Jika tidak, mengembalikan NaN. Jika semua perilaku ini baik untuk Anda, pertimbangkanparseFloat('2.34million')
agar Anda mendapatkan 2,34 daripada kehilangan uang ;-)Anda dapat melakukan ini menggunakan javascript. Tidak perlu Jquery atau Regex
function isNumeric(n) { return !isNaN(n); }
sumber
function isNumeric(n) { return !isNaN(n); }
Kode ini juga membantu dalam, "Untuk Mendeteksi Angka dalam String yang Diberikan" ketika angka yang ditemukan itu menghentikan eksekusinya.
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_; }
sumber
Anda juga bisa mencoba lodash:
const isNumeric = number => _.isFinite(_.parseInt(number)) && !_.isNaN(_.parseInt(number))
sumber