测试所有字母字符或所有整数的字符串

时间:2011-08-04 06:47:50

标签: javascript jquery regex

我有一个格式为ABC1234567的字符串

var value = "ABC1234567"  
var first3Letters = value.substring(0,3);  // ABC   
var next7Letters = value.substring(3,7);   //1234567`

现在我想验证变量 first3Letters 是否仅包含字母,变量 next7letters 仅包含整数。

我该怎么做?

4 个答案:

答案 0 :(得分:3)

这是一种方式:

if ( /^[a-z]+$/i.test (first3Letters ) ) {
    // It's good.
}

if ( /^\d+$/.test (next7Letters) ) {
    // It's good.
}

See it in action at jsFiddle.


正则表达式解释道:

  1. ^指定字符串的开头。
  2. &指定字符串的结尾。
  3. [a-z]是任何单词字符(A,B,C等,但不是数字或下划线 - \w允许)。
  4. \d是任何数字字符(0,1,2等)
  5. +表示之前的一个或多个。
  6. 最后的ii.test)告诉JS运行不区分大小写的搜索。
  7. 因此,正则表达式基本上是在说,“从开始到结束,除了1个或更多(单词或数字)字符外,什么都没有。”

    另请参阅:Regular expressions tutorial

答案 1 :(得分:0)

var value = "ABC1234567"  

alert("Matches: "+ value.test(/^[A-Za-z]{3}[0-9]{7}$/));

答案 2 :(得分:0)

对于第二种,您可以使用isNaN方法,它将采用数字的字符串表示形式,并按预期返回,即var x = 2; var y = "2",并且都从{{1}返回相同的值}

答案 3 :(得分:0)

var test    =   'AAAA1122';
    chr =   test.split(/\d/i);
    integer =   test.split(/\D/i);

    alert("+++++++chr+++++"+chr[0]+"++++++++++++");
    alert("++++++int++++++"+integer[0]+"++++++++++++");