JS正則表達式判斷字符串是否為數字、字母、下划線組成,且長度在6-12之間
目錄
前言
學習過程中做的學習筆記,意在鞏固學習,方便復習。文章中有何不妥之處,歡迎指正批評!
也希望能夠幫助到有需要的朋友
一、什么是正則表達式
正則表達式是由一個字符序列形成的搜索模式。
當你在文本中搜索數據時,你可以用搜索模式來描述你要查詢的內容。
正則表達式可以是一個簡單的字符,或一個更復雜的模式。
正則表達式可用於所有文本搜索和文本替換的操作。
二、javaScript正則表達式的簡單語法
/正則表達式主體/修飾符(可選)
實例:
var patt=/abc/i;
var str="aBccc";
alert(patt.test(str));
//語句表達的意思是搜索字符串str中是否有abc(不區分大小寫) 輸出結果為true
//其中,/e/i是一個正則表達式
// abc正則表達式主體
// i表示不區分大小寫
// text()是正則表達式的一個方法,檢索字符串中指定的值。返回 true 或 false。
三、正則表達式常用字符
1.修飾符
修飾符 | 描述 |
---|---|
i | 執行對大小寫不敏感的匹配。 |
g | 執行全局匹配(查找所有匹配而非在找到第一個匹配后停止)。 |
m | 執行多行匹配。 |
2.中括號
中括號用於查找某個范圍內的字符:
表達式 | 描述 |
---|---|
查找方括號之間的任何字符。 | |
[^abc] | 查找任何不在方括號之間的字符。 |
[0-9] | 查找任何從 0 至 9 的數字。 |
[a-z] | 查找任何從小寫 a 到小寫 z 的字符。 |
[A-Z] | 查找任何從大寫 A 到大寫 Z 的字符。 |
[A-z] | 查找任何從大寫 A 到小寫 z 的字符。 |
[adgk] | 查找給定集合內的任何字符。 |
[^adgk] | 查找給定集合外的任何字符。 |
(red|blue|green) | 查找任何指定的選項。 |
3.元字符
元字符(Metacharacter)是擁有特殊含義的字符:
元字符 | 描述 |
---|---|
. | 查找單個字符,除了換行和行結束符。 |
\w | 查找單詞字符。 |
\W | 查找非單詞字符。 |
\d | 查找數字。 |
\D | 查找非數字字符。 |
\s | 查找空白字符。 |
\S | 查找非空白字符。 |
\b | 匹配單詞邊界。 |
\B | 匹配非單詞邊界。 |
\0 | 查找 NUL 字符。 |
\n | 查找換行符。 |
\f | 查找換頁符。 |
\r | 查找回車符。 |
\t | 查找制表符。 |
\v | 查找垂直制表符。 |
\xxx | 查找以八進制數 xxx 規定的字符。 |
\xdd | 查找以十六進制數 dd 規定的字符。 |
\uxxxx | 查找以十六進制數 xxxx 規定的 Unicode 字符。 |
4.量詞
量詞 | 描述 |
---|---|
n+ | 匹配任何包含至少一個 n 的字符串。 |
n* | 匹配任何包含零個或多個 n 的字符串。 |
n? | 匹配任何包含零個或一個 n 的字符串。 |
n{X} | 匹配包含 X 個 n 的序列的字符串。 |
n{X,Y} | 匹配包含 X 至 Y 個 n 的序列的字符串。 |
n{X,} | 匹配包含至少 X 個 n 的序列的字符串。 |
n$ | 匹配任何結尾為 n 的字符串。 |
^n | 匹配任何開頭為 n 的字符串。 |
?=n | 匹配任何其后緊接指定字符串 n 的字符串。 |
?!n | 匹配任何其后沒有緊接指定字符串 n 的字符串 |
四、判斷字符串是否為數字、字母、下划線組成,且長度在6-12之間
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>正則表達式</title>
<script type="text/javascript">
//要求字符串長度6-12,且必須為字母、下划線或者數字
var patt=/^\w{6,12}$/; // 表示字符串長度在6-12之間,且必須是字母、數字、下划線組成
var str="Abcs213214";
alert(patt.test(str));
</script>
</head>
<body>
</body>
</html>
注意:
使用正則表達式時,如果字符串中一旦達到其要求,就會停止檢索。就如同 “ n? 表示 匹配任何包含零個或一個 n 的字符串。”不管字符串中有幾個n,都會返回true,但是如果字符串中出現一個或幾個連續的n,就會停止檢索,如“abcndef”就會在檢索到n時停止檢索;
n{X,Y}表示匹配包含 X 至 Y 個 n 的序列的字符串。所以如"/\w{2,3}/"這個例子就不符合條件,這是匹配2到3個的序列單詞字符(即2到3個連續的字母、數字或者下划線),如果字符串前部分滿足了條件,就會停止檢索,至於字符串后面部分如果出現不滿足條件的情況,就檢索不到。如"abcd【【"這個例子,前面部分滿足匹配條件時,就會停止檢索。
而我們要求的是字符串只能由字母、數字、下划線組成,所以還要加上字符串開頭和結尾也必須是單詞字符的要求,所以正確的表達一應該是/^\w{6,12}$/