我有一个格式为ABC1234567的字符串
var value = "ABC1234567"
var first3Letters = value.substring(0,3); // ABC
var next7Letters = value.substring(3,7); //1234567`
现在我想验证变量 first3Letters 是否仅包含字母,变量 next7letters 仅包含整数。
我该怎么做?
答案 0 :(得分:3)
这是一种方式:
if ( /^[a-z]+$/i.test (first3Letters ) ) {
// It's good.
}
if ( /^\d+$/.test (next7Letters) ) {
// It's good.
}
正则表达式解释道:
^
指定字符串的开头。 &
指定字符串的结尾。[a-z]
是任何单词字符(A,B,C等,但不是数字或下划线 - \w
允许)。\d
是任何数字字符(0,1,2等)+
表示之前的一个或多个。i
(i.test
)告诉JS运行不区分大小写的搜索。因此,正则表达式基本上是在说,“从开始到结束,除了1个或更多(单词或数字)字符外,什么都没有。”
答案 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]+"++++++++++++");