正則表達式

1、\d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分別是什么?

\d:數字0-9
\w:單詞字符,字母、數字下劃線
\s:空白符
[a-zA-Z0-9]:小寫字母a-z 大寫字母A-Z 數字0-9
\b:字符邊界
.:除換行和空白字符以外的字符
*:量詞,表示0到多個
+:量詞,表示1到多個
?:量詞,表示零次或1次
x{3}:表示x匹配3次
^:表示開頭的意思,在[]中表示非
$:表示結尾

2、寫一個函數trim(str),去除字符串兩邊的空白字符

function trim(str){
    return str.replace(/^\s+|\s+$/g, '')  //\s+$而不是\s$是避免字符串后面有多個空白符
}

3、 寫一個函數isEmail(str),判斷用戶輸入的是不是郵箱

function isEmail(str){
     var reg = /^\w+@\w+[.]\w+$/g
     return   reg.test(str)
}

4、寫一個函數isPhoneNum(str),判斷用戶輸入的是不是手機號

function isPhoneNum(str){
     var reg = /^1[3|5|7|8]\d{9}$/g
     return   reg.test(str)
}

5、寫一個函數isValidUsername(str),判斷用戶輸入的是不是合法的用戶名(長度6-20個字符,只能包括字母、數字、下劃線)

function isValidUsername(str){
     var reg = /^\w{6,20}$/g
     return   reg.test(str)
}

6、寫一個函數isValidPassword(str), 判斷用戶輸入的是不是合法密碼(長度6-20個字符,只包括大寫字母、小寫字母、數字、下劃線,且至少至少包括兩種)

function isValidPassword(str){
     if(!/\w{6,20}$/g.test(str))  return false
     if(/^[0-9]{6,20}$/g.test(str))  return false
     if(/^[a-z]{6,20}$/g.test(str))  return false
     if(/^[A-Z]{6,20}$/g.test(str))  return false
     if(/^_{6,20}$/g.test(str))  return false
     return true
}

7、寫一個正則表達式,得到如下字符串里所有的顏色

var re = /#([0-9a-fA-F]{6})|[0-9a-fA-F]{3}(?=;)/g
var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee "
console.log( subj.match(re) )  // ['#121212', '#AA00ef']

8、下面代碼輸出什么? 為什么? 改寫代碼,讓其輸出[""hunger"", ""world""].

var str = 'hello  "hunger" , hello "world"';
var pat =  /".*"/g;
str.match(pat);
貪婪模式所以輸出[""hunger" , hello "world""]
var str = 'hello  "hunger" , hello "world"';
var pat =  /".*?"/g;
str.match(pat);
非貪婪模式所以輸出["hunger" ,"world"]
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 文章轉載地址: http://www.open-open.com/code/view/1430625516632 ...
    得起一個清新脫俗的名字閱讀 2,211評論 1 3
  • 一、校驗數字的表達式 二、校驗字符的表達式 三、特殊需求表達式 一.網絡驗證應用技巧 驗證 E-mail格式 驗證...
    丶legend閱讀 1,392評論 0 22
  • 正則表達式(Regular Expression)是計算機科學的一個概念。正則表達式使用單個字符串來描述、匹配一系...
    草鞋弟閱讀 771評論 0 0
  • 正則表達式功能: 測試字符串的某個模式。例如對一個輸入字符串進行測試,看在該字符串是否存在一個電話號碼模式或一個信...
    DecadeHeart閱讀 618評論 0 1
  • 初衷:看了很多視頻、文章,最后卻通通忘記了,別人的知識依舊是別人的,自己卻什么都沒獲得。此系列文章旨在加深自己的印...
    DCbryant閱讀 4,060評論 0 20