Son hedefim bir girdi alanını doğrulamak. Giriş alfabetik veya sayısal olabilir.
Son hedefim bir girdi alanını doğrulamak. Giriş alfabetik veya sayısal olabilir.
Yanıtlar:
Yanılmıyorsam, soru "sayı içerir" değil, "sayı içerir" gerektirir. Yani:
function hasNumber(myString) {
return /\d/.test(myString);
}
Javascript kullanarak bunu yapabilirsiniz. Jquery veya Regex'e gerek yok
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
Uygularken
var val = $('yourinputelement').val();
if(isNumeric(val)) { alert('number'); }
else { alert('not number'); }
Güncelleme: Bir dizenin içinde sayı olup olmadığını kontrol etmek için bunu yapmak için normal ifadeler kullanabilirsiniz
var matches = val.match(/\d+/g);
if (matches != null) {
alert('number');
}
matches != null
yolu değildir undefined
ya null
da matches !== null
aracı, özellikle değil null
ama geçer undefined
.
match()
bir dizi veya döndürür null
. Yani iyi if (matches !== null)
olmalı (ve JSHint'i memnun edecektir.) Kaynak: developer.mozilla.org/en/docs/Web/JavaScript/Reference/…
isFinite(parseFloat(n))
İlk örnekte olmalı . isNumeric("5,000")
başarısız olur.
isFinite()
iletilen değer bir finite
sayı ve sayı 5,000
sonlu bir sayı değil, biçimlendirilmiş bir sayı dizgiyse doğrudur .
isNaN
? Ben ayrıştırmak şamandıra şamandıra kaldırmak isNaN
veya eklemek için isFinite
de eklemek için öneriyoruz .
function validate(){
var re = /^[A-Za-z]+$/;
if(re.test(document.getElementById("textboxID").value))
alert('Valid Name.');
else
alert('Invalid Name.');
}
Hiçbir şekilde kurşun geçirmez değil, ama benim amacım için çalıştı ve belki birine yardımcı olacaktır.
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
JavaScript ile Normal İfadeler Kullanma . Normal ifade, "desen" normal ifadenin kendisidir ve "değiştiriciler" çeşitli seçenekleri gösteren bir dizi karakterdir / arama / desen / değiştiriciler şeklinde yazılmış bir arama modelini tanımlamak için kullanılan özel bir metin dizesidir.
Karakter sınıfı bir hazır maçtan sonra en temel regex kavramdır. Küçük bir karakter dizisini daha büyük bir karakter kümesiyle eşleştirir. Örneğin , büyük harfli alfabe anlamına gelebilir ve herhangi bir rakam anlamına gelebilir.
[A-Z]
\d
Aşağıdaki örnekten
contains_alphaNumeric
«Dize harf veya sayı (veya) hem harf hem de sayı içerip içermediğini denetler. Kısa çizgi (-) yok sayılır .onlyMixOfAlphaNumeric
«Dize olup olmadığını kontrol eder, sadece herhangi bir sıra düzeninin hem harflerini hem de sayılarını içerir.Misal:
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) );
Çıktı:
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}
Düzenli İfadeler ile Eşleşen java Kalıbı .
Herhangi bir karakterin gereğinden fazla adapte edilecek bir sayı olup olmadığını test etmek.
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)
Bunu kontrol etmenin bir yolu, bir sayıya çarptığınızda dizede döngü yapmak ve true (veya ne istediğinize bağlı olarak false) döndürmektir.
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;
}
}
}
Javascript kullanarak bunu yapabilirsiniz. Jquery veya Regex'e gerek yok
function isNumeric(n) {
if(!isNaN(n))
{
return true
}
else
{
return false
}
}
function isNumeric(n) { return !isNaN(n); }
Bu kod ayrıca, sayılar çalışmasını durdurduğunda "Verilen Dizede Sayıları Algılamak" için de yardımcı olur .
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_;
}
parseInt
dize bir tamsayının temsili ile başladığında tamsayı sağlar:
(parseInt '1a') is 1
..belkide:
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
CoffeeScript'imi affedin.