เป้าหมายสุดท้ายของฉันคือการตรวจสอบความถูกต้องของฟิลด์อินพุต อินพุตอาจเป็นตัวอักษรหรือตัวเลข
เป้าหมายสุดท้ายของฉันคือการตรวจสอบความถูกต้องของฟิลด์อินพุต อินพุตอาจเป็นตัวอักษรหรือตัวเลข
คำตอบ:
หากฉันไม่เข้าใจผิดคำถามต้องมี "number number" ไม่ใช่ "is number" ดังนั้น:
function hasNumber(myString) {
return /\d/.test(myString);
}
คุณสามารถทำได้โดยใช้ javascript ไม่จำเป็นต้องมี Jquery หรือ Regex
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');
}
matches != null
ไม่ได้หมายถึงundefined
หรือnull
ในขณะที่matches !== null
วิธีการโดยเฉพาะไม่ได้แต่ผ่านไปnull
undefined
match()
null
ส่งกลับอาร์เรย์หรือ ดังนั้นif (matches !== null)
ควรจะดี (และมันจะโปรด JSHint.) ที่มา: developer.mozilla.org/en/docs/Web/JavaScript/Reference/ …
isFinite(parseFloat(n))
ในตัวอย่างแรก isNumeric("5,000")
ล้มเหลว
isFinite()
ให้ความจริงถ้าค่าที่ส่งเป็นfinite
ตัวเลขและตัวเลข5,000
เป็นสตริงที่จัดรูปแบบของตัวเลขไม่ใช่จำนวน จำกัด
isNaN
? ฉันอยากจะแนะนำให้ลบ parse float จากisNaN
หรือเพิ่มลงในนั้นเพื่อisFinite
ประกอบ
function validate(){
var re = /^[A-Za-z]+$/;
if(re.test(document.getElementById("textboxID").value))
alert('Valid Name.');
else
alert('Invalid Name.');
}
มันไม่ได้เป็นกระสุน แต่อย่างใด แต่มันก็ใช้งานได้ตามวัตถุประสงค์ของฉันและอาจช่วยคนได้
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 นิพจน์ทั่วไปเป็นสตริงข้อความพิเศษสำหรับอธิบายรูปแบบการค้นหาซึ่งเขียนในรูปแบบของ / pattern / modifiers โดยที่ "pattern" เป็นนิพจน์ปกตินั้นเองและ "modifiers" เป็นชุดอักขระที่ระบุตัวเลือกต่างๆ
ชั้นตัวมากที่สุดคือแนวคิด regex พื้นฐานหลังจากการแข่งขันที่แท้จริง มันทำให้ตัวละครเล็ก ๆ เรียงตามลำดับตัวละครที่ใหญ่ขึ้น ตัวอย่างเช่นสามารถยืนสำหรับตัวอักษรตัวพิมพ์ใหญ่และอาจหมายถึงหลักใด ๆ
[A-Z]
\d
จากตัวอย่างด้านล่าง
contains_alphaNumeric
«ตรวจสอบสตริงว่ามีตัวอักษรหรือตัวเลข (หรือ) ทั้งตัวอักษรและตัวเลข ยัติภังค์ (-) จะถูกละเว้นonlyMixOfAlphaNumeric
«มันตรวจสอบว่าสตริงมีทั้งตัวอักษรและตัวเลขเท่านั้นของลำดับใด ๆตัวอย่าง:
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}
การจับคู่รูปแบบ javaด้วยนิพจน์ปกติ
เพื่อทดสอบว่าตัวอักษรใด ๆ เป็นตัวเลขโดยไม่ต้อง overkill to จะปรับได้ตามต้องการ
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)
วิธีหนึ่งในการตรวจสอบคือการวนซ้ำสตริงและส่งกลับค่าจริง (หรือเท็จขึ้นอยู่กับสิ่งที่คุณต้องการ) เมื่อคุณกดตัวเลข
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 ไม่จำเป็นต้องมี Jquery หรือ Regex
function isNumeric(n) {
if(!isNaN(n))
{
return true
}
else
{
return false
}
}
function isNumeric(n) { return !isNaN(n); }
รหัสนี้ยังช่วยในการ"การตรวจจับหมายเลขในสตริงที่กำหนด"เมื่อพบว่ามันหยุดการทำงาน
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
จัดเตรียมจำนวนเต็มเมื่อสตริงเริ่มต้นด้วยการแสดงจำนวนเต็ม:
(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
ให้อภัย CoffeeScript ของฉัน
คุณยังสามารถลอง lodash:
const isNumeric = number =>
_.isFinite(_.parseInt(number)) && !_.isNaN(_.parseInt(number))