첫 번째 문자가 'x'
이어야하며 나머지 문자는 숫자 여야 만하는 문자열의 유효성을 검사하려고합니다. 예를 들면 다음과 같습니다 Javascript validate string은 숫자 다음에 오는 문자입니다
x1234 == true;
k1234 == false;
x12k4 == false;
1x123 == false;
내 코드입니다 :
function isValidCode(code){
var firstLetter = code.substring(0,1);
var remainingCode = code.substring(1);
var validCode = false;
// Debugging
console.log(firstLetter);
console.log(remainingCode);
if(firstLetter == 'x'){
validCode = true;
}
if(isNumeric(Number(remainingCode))){
validCode = true;
}
}
내 isNumeric()
기능을 디버깅, 그래서 나는 문제가없는 99.9 % 확신하지만, 여기 단지에 경우 : 예 나는 진실되고 다음 내가 ==
0을 시도했습니다 if(!(firstLetter == 'x'))
을 확인 주어진 condidtion로 시작하는 내 논리를 역으로
function isNumeric(numberIn)
{
var returnValue = true;
if (isNaN(numberIn) || isNaN(parseInt(numberIn, 10)))
{
returnValue = false;
}
return returnValue;
}
내가 시도한 몇 가지과 나는 코드의 나머지 부분을 Number()
, +()
으로 캐스팅했지만 전혀 캐스팅하지 않았지만 이들 중 아무 것도 트릭을 수행하지 않습니다. 콘솔은 올바른 첫 번째 문자와 나머지 문자를 코드에 기록하므로 잘못된 것이 확실하지 않습니다.
function isValidCode(code) {
return /^[a-z]\d+$/.test(code);
}
내가 소문자는 적어도 하나 개의 숫자 다음에 필요하다는 가정을 만드는 중이라서 :
감사합니다.이 코드는 작동하며 훨씬 더 깨끗합니다. 지금은 어떤 문자도 허용하지만, 그게 해결 됐어. 내가 할 수있을 때 5 분 안에 받아 들일거야. 제쳐두고 원래 코드가 작동하지 않는 이유는 무엇입니까? – kalenpw
숫자 ("")는 0으로 변환됩니다. 'remainingCode'가 ""이면 0이 isNumeric으로 전달되어 true를 반환합니다. – dave