Javascript validate string是一个后跟数字的字符

时间:2016-09-23 02:01:24

标签: javascript validation

我正在尝试验证字符串,其中第一个字符必须是'x',其余字符必须是数字。例如:

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;
}

我尝试了几件事情,例如在我开始时给定的条件为真,然后检查if(!(firstLetter == 'x'))我已尝试=====我已经尝试了一些事情。尝试使用Number()+()投射代码的剩余部分,而不是完全投射它,但这些都没有看到要做的伎俩。控制台会记录正确的第一个字符和代码中剩余的字符,所以我不确定是什么问题。

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式测试:

function isValidCode(code) {
    return /^[a-z]\d+$/.test(code);
}

我假设需要一个小写字母,后跟至少一个数字。

要仅匹配字母' x',请使用:

function isValidCode(code) {
    return /^x\d+$/.test(code);
}

答案 1 :(得分:1)

您可以在输入开头使用RegExp /^x(?=\d+$)/匹配x,后跟数字,然后输入结束



var arr = ["x1234"
, "k1234"
, "x12k4"
, "1x123"];

var re = /^x(?=\d+$)/;

arr.forEach(function(str) {
  console.log(`${str}: ${re.test(str)}`)
})