我有一個字符串,它是格式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