Mục tiêu cuối cùng của tôi là xác nhận một trường đầu vào. Đầu vào có thể là chữ cái hoặc số.
Mục tiêu cuối cùng của tôi là xác nhận một trường đầu vào. Đầu vào có thể là chữ cái hoặc số.
Câu trả lời:
Nếu tôi không nhầm, câu hỏi yêu cầu "chứa số", không phải "là số". Vì thế:
function hasNumber(myString) {
return /\d/.test(myString);
}
Bạn có thể làm điều này bằng cách sử dụng javascript. Không cần Jquery hoặc Regex
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
Trong khi thực hiện
var val = $('yourinputelement').val();
if(isNumeric(val)) { alert('number'); }
else { alert('not number'); }
Cập nhật: Để kiểm tra xem một chuỗi có số trong đó không, bạn có thể sử dụng các biểu thức thông thường để làm điều đó
var matches = val.match(/\d+/g);
if (matches != null) {
alert('number');
}
matches != null
có nghĩa là không undefined
hoặc null
trong khi matches !== null
có nghĩa là cụ thể không null
nhưng vượt qua undefined
.
match()
trả về một mảng hoặc null
. Vì vậy, if (matches !== null)
sẽ ổn thôi (và nó sẽ làm hài lòng JSHint.) Nguồn: developer.mozilla.org/en/docs/Web/JavaScript/Reference/
isFinite(parseFloat(n))
ở trong ví dụ đầu tiên. isNumeric("5,000")
thất bại
isFinite()
cho đúng nếu giá trị được truyền là một finite
số và số 5,000
là một chuỗi số được định dạng không phải là số hữu hạn.
isNaN
? Tôi sẽ đề nghị loại bỏ phân tích cú pháp nổi isNaN
hoặc thêm nó vào isFinite
để được bao gồm.
function validate(){
var re = /^[A-Za-z]+$/;
if(re.test(document.getElementById("textboxID").value))
alert('Valid Name.');
else
alert('Invalid Name.');
}
Nó không chống đạn bằng bất kỳ phương tiện nào, nhưng nó hoạt động cho mục đích của tôi và có thể nó sẽ giúp được ai đó.
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
Sử dụng biểu thức chính quy với JavaScript . Biểu thức chính quy là một chuỗi văn bản đặc biệt để mô tả một mẫu tìm kiếm, được viết dưới dạng / mẫu / bổ nghĩa trong đó "mẫu" là chính biểu thức chính và "bổ nghĩa" là một chuỗi các ký tự chỉ ra các tùy chọn khác nhau.
Lớp nhân vật là khái niệm regex cơ bản nhất sau một trận đấu theo nghĩa đen. Nó làm cho một chuỗi ký tự nhỏ khớp với một bộ ký tự lớn hơn. Ví dụ, [A-Z]
có thể là viết tắt của bảng chữ cái in hoa và \d
có thể có nghĩa là bất kỳ chữ số nào.
Từ ví dụ dưới đây
contains_alphaNumeric
«Nó kiểm tra chuỗi chứa cả chữ cái hoặc số (hoặc) cả chữ cái và số. Các dấu gạch ngang (-) bị lờ đi .onlyMixOfAlphaNumeric
«Nó kiểm tra chuỗi chỉ chứa cả chữ và số của bất kỳ thứ tự chuỗi nào.Thí dụ:
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) );
Đặt ra:
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}
Kết hợp mẫu java với biểu thức chính quy.
Để kiểm tra xem có bất kỳ char nào là số không mà không cần quá mức, để được điều chỉnh khi cần.
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)
Một cách để kiểm tra nó là lặp qua chuỗi và trả về true (hoặc false tùy thuộc vào những gì bạn muốn) khi bạn nhấn một số.
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;
}
}
}
Bạn có thể làm điều này bằng cách sử dụng javascript. Không cần Jquery hoặc Regex
function isNumeric(n) {
if(!isNaN(n))
{
return true
}
else
{
return false
}
}
function isNumeric(n) { return !isNaN(n); }
Mã này cũng giúp, "Để phát hiện các số trong chuỗi đã cho" khi các số được tìm thấy, nó dừng thực thi.
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
cung cấp số nguyên khi chuỗi bắt đầu bằng biểu diễn số nguyên:
(parseInt '1a') is 1
..đương nhiên rồi:
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
Xin thứ lỗi cho CoffeeScript của tôi.