检查数字(如果是字母)是否在javascript中提取字符串的一部分

时间:2014-12-05 13:00:58

标签: javascript input

我有那些php脚本:

<input type="text" name="value">
$value=$_POST['value']
if( ctype_alpha(substr($value,0,2)) && is_numeric(substr($value,2,2)) ){
//do smthing
}

我无法在javascript中找到类似的验证。我是js的新手,所以我不能单独做,特别是因为我需要尽可能快。 我需要检查输入值的一部分是否只包含字母字符,输入值的一部分是否只包含数字字符,当然还有如何提取输入的那部分。

1 个答案:

答案 0 :(得分:0)

使用正则表达式:

/^-?([1-9]\d+|\d)(\.\d+)?$/.test("1234"); // true
/^-?([1-9]\d+|\d)(\.\d+)?$/.test("asdf"); // false

/^[a-zA-Z]+$/.test("asdf"); // true
/^[a-zA-Z]+$/.test("1234"); // false

或者你只想要两个与PHP同名的函数:

function ctype_alpha(input) {
    // this works for both upper and lower case
    return /^[a-zA-Z]+$/.test(input);
}

function is_numeric(input) {
    // this works for integer, float, negative and positive number
    return /^-?([1-9]\d+|\d)(\.\d+)?$/.test(input);
}

ctype_alpha("asdf"); // true
is_numeric("1234"); // true
is_numeric("-1234"); // true
is_numeric("12.34"); // true
is_numeric("0.4"); // true
is_numeric("001"); // false

最后是JS代码使用的端口:

var input = "your_string"

function ctype_alpha(input) {
    // this works for both upper and lower case
    return /^[a-zA-Z]+$/.test(input);
}

function is_numeric(input) {
    // this works for integer, float, negative and positive number
    return /^-?([1-9]\d+|\d)(\.\d+)?$/.test(input);
}

if(ctype_alpha(input.substring(0, 2)) && is_numeric(input.substring(2, 4))) {
    //do smthing
}