최종 목표는 입력 필드의 유효성을 검사하는 것입니다. 입력은 알파벳 또는 숫자 일 수 있습니다.
최종 목표는 입력 필드의 유효성을 검사하는 것입니다. 입력은 알파벳 또는 숫자 일 수 있습니다.
답변:
내가 실수하지 않으면 질문에 "숫자"가 아니라 "숫자 포함"이 필요합니다. 그래서:
function hasNumber(myString) {
return /\d/.test(myString);
}
자바 스크립트를 사용하여이 작업을 수행 할 수 있습니다. 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
가 유한 숫자가 아닌 형식화 된 문자열 인 경우 true를 제공합니다 .
isNaN
합니까? 구문 분석 부동을 제거 isNaN
하거나 구성하기 위해 추가하는 것이 좋습니다 isFinite
.
JavaScript와 함께 정규 표현식 사용 . 정규 표현식은 / pattern / modifiers 형식으로 작성된 검색 패턴을 설명하기위한 특수 텍스트 문자열입니다. 여기서 "pattern"은 정규 표현식이고 "modifiers"는 다양한 옵션을 나타내는 일련의 문자입니다.
문자 클래스
문자 그대로 경기 후 가장 기본적인 정규 표현식의 개념이다. 하나의 작은 문자 시퀀스가 더 큰 문자 세트와 일치하게합니다. 예를 들어 [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 패턴 일치
과잉이없는 숫자가 어떤 문자인지 테스트하여 필요에 따라 조정합니다.
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)
그것을 확인하는 한 가지 방법은 문자열을 반복하고 숫자를 칠 때 true (또는 원하는 것에 따라 false)를 반환하는 것입니다.
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;
}
}
}
자바 스크립트를 사용하여이 작업을 수행 할 수 있습니다. 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_;
}