我有一个字符串,它是格式ABC1234567测试字符串或全部整数
var value = "ABC1234567"
var first3Letters = value.substring(0,3); // ABC
var next7Letters = value.substring(3,7); //1234567`
现在我想验证是否可变first3Letters只包含字母和可变next7letters只包含整数。
我该怎么做?
我有一个字符串,它是格式ABC1234567测试字符串或全部整数
var value = "ABC1234567"
var first3Letters = value.substring(0,3); // ABC
var next7Letters = value.substring(3,7); //1234567`
现在我想验证是否可变first3Letters只包含字母和可变next7letters只包含整数。
我该怎么做?
这里有一种方法:
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运行不区分大小写的搜索。所以正则表达式实质上是说:“从头到尾,除了一个或多个(单词或数字)字符外,什么都没有。”还有:Regular expressions tutorial。
var value = "ABC1234567"
alert("Matches: "+ value.test(/^[A-Za-z]{3}[0-9]{7}$/));
Excellent Petar ... – JAB
'test()'的语法是错误的;该代码将引发异常。 '\ w'也允许数字。 IE,'“6661234567”'和'“___ 1234567”'都会通过该正则表达式。 –
我修正\ w和\ d。 test()没有错,尽管在jsfiddle.net中尝试它 –
对于第二个你可以使用isNaN
方法,它会采取一些字符串表示,返回如预期,即var x = 2; var y = "2"
,并且无论从isNaN()
var test = 'AAAA1122';
chr = test.split(/\d/i);
integer = test.split(/\D/i);
alert("+++++++chr+++++"+chr[0]+"++++++++++++");
alert("++++++int++++++"+integer[0]+"++++++++++++");
由于返回相同布洛克..它的工作..一个小的忙,你可以解释这些正则表达式 – JAB
请参阅更新的答案对正则表达式的解释。 –
我觉得'\ w'中的第一个正则表达式会匹配数字以及字母 – ipr101