2014-12-05 58 views
1

的一部分我的PHP腳本:檢查數字,字母,如果,提取字符串在JavaScript

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

我cannnot找到javascript.Im類似的驗證新的js,所以我不能獨自做到這一點,特別是因爲我需要儘可能快。 我需要的是檢查輸入值的一部分是否僅包含字母字符,如果輸入值的一部分僅包含數字字符,當然還有如何提取該部分輸入。

回答

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 
} 
+0

這隻適用於整個正數,例如:'/^\d+$/.test("1.234「); // false /^\d+$/.test("-1234「); // false' – 2014-12-05 13:09:13

+0

這取決於提問者的要求。就目前而言,他並沒有說太多。而我只是在給出一個線索,而不是完成他的工作。 – Leo 2014-12-05 13:12:20

+0

我已經說過,我需要javascript ... – 2014-12-05 13:15:39