最初の文字が'x'
でなければならない文字列を検証しようとしています。残りの文字は数値でなければなりません。例:ここでは Javascriptの検証文字列の後に数字が続く文字
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%確信しているが、ここではそれだけですケース:
function isNumeric(numberIn)
{
var returnValue = true;
if (isNaN(numberIn) || isNaN(parseInt(numberIn, 10)))
{
returnValue = false;
}
return returnValue;
}
私は、このような私は与えられたcondidtionが真であることで開始し、その後、私は==
と0を試してみたif(!(firstLetter == 'x'))
をチェックし、私の論理を反転させるなど、いくつかのことを試してみましたと私はコードの残りの部分を、+()
でキャスティングしようとしましたが、まったくキャストしませんでしたが、これらのどれもそのトリックを行うことはありません。コンソールは、適切な最初の文字と残りの文字をコードに記録するので、何が間違っているのか分かりません。
function isValidCode(code) {
return /^[a-z]\d+$/.test(code);
}
私は小文字が少なくとも一つの数字が続く、必要とされることを前提に作っています:
ありがとうございます、これは動作し、はるかにクリーンですが、現時点では手紙を受け入れますが、私はnそれを修正する。私は5分後にそれを受け入れます。さて、元のコードがうまくいかなかった理由は何ですか? – kalenpw
数値( "")は0に変換されます。 'remainingCode'が" "の場合、0がisNumericに渡され、trueを返します。 – dave