입력 문자열에 javascript의 숫자가 포함되어 있는지 확인합니다.
최종 목표는 입력 필드를 검증하는 것입니다.입력은 영숫자 또는 숫자 중 하나입니다.
제가 틀리지 않았다면, 이 질문은 "숫자"가 아니라 "숫자를 포함합니다"를 요구합니다.그래서:
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');
}
이게 네게 필요한 거야.
var hasNumber = /\d/;
hasNumber.test("ABC33SDF"); //true
hasNumber.test("ABCSDF"); //false
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.");
}
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}
필요에 따라 숫자(오버킬❓ 없음)가 적용되는지 테스트합니다.
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;
}
}
}
javascript를 사용하여 실행할 수 있습니다.Jquery 또는 Regex 불필요
function isNumeric(n)
{
return !isNaN(n);
}
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
커피스크립트 죄송합니다.
또한 이 코드는 "지정 문자열에서 번호를 검색하려면"에서 번호가 실행을 중지합니다.
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_;
}
아래 코드는 동일한 번호, 시퀀스 번호 및 후진 번호 시퀀스를 확인합니다.
function checkNumSequnce(arrayNM2) {
inseqCounter=1;
continousSeq = 1;
decsequenceConter = 1;
var isequence = true;
for (i=0;i<arrayNM2.length-1;i++) {
j=i+1;
if (arrayNM2[i] == arrayNM2[i+1]) {
if(inseqCounter > 1 || decsequenceConter > 1){
isequence = false; break;
}
continousSeq++;
}
else if (arrayNM2[j]- arrayNM2[i] == 1) {
if(decsequenceConter > 1 || continousSeq > 1){
isequence = false; break;
}
inseqCounter++;
} else if(arrayNM2[i]- arrayNM2[j] == 1){
if(inseqCounter > 1 || continousSeq > 1){
isequence = false; break;
}
decsequenceConter++;
}else{
isequence= false;
break;
}
};
console.log("isequence: "+ isequence);
};
를 사용하여 확인할 수 있습니다.!/[^a-zA-Z]/.test(e)
스니펫을 실행해서 확인하세요.
function handleValueChange() {
if (!/[^a-zA-Z]/.test(document.getElementById('textbox_id').value)) {
var x = document.getElementById('result');
x.innerHTML = 'String does not contain number';
} else {
var x = document.getElementById('result');
x.innerHTML = 'String does contains number';
}
}
input {
padding: 5px;
}
<input type="text" id="textbox_id" placeholder="Enter string here..." oninput="handleValueChange()">
<p id="result"></p>
Lodash를 사용해 볼 수도 있습니다.
const isNumeric = number =>
_.isFinite(_.parseInt(number)) && !_.isNaN(_.parseInt(number))
언급URL : https://stackoverflow.com/questions/5778020/check-whether-an-input-string-contains-a-number-in-javascript
'sourcecode' 카테고리의 다른 글
MySQL에서 테이블 이름 바꾸기 (0) | 2022.09.26 |
---|---|
데이터베이스 다이어그램 자동 생성 MySQL (0) | 2022.09.26 |
Python에서 "try" 문의 옵션인 "else" 절의 용도는 무엇입니까? (0) | 2022.09.26 |
Panda는 데이터 프레임을 일련의 튜플로 변환합니다. (0) | 2022.09.26 |
LauncherFactory의 NoClassDefFoundError로 인해 JUnit 5를 사용하여 이클립스 테스트를 찾을 수 없습니다. (0) | 2022.09.26 |