1、var s1 = "get-element-by-id"; 給定這樣一個連字符串,寫一個function轉(zhuǎn)換為駝峰命名法形式的字符串 getElementById
var f = function(s) { return s.replace(/-\w/g, function(x) { return x.slice(1).toUpperCase(); }) }
2、判斷字符串是否包含數(shù)字
function containsNumber(str) { var regx = /\d/; return regx.text(str); }
3、判斷電話號碼
function isPhone(tel) { var regx = /^1[34578]\d{9}$/; return regx.test(tel); }
4、判斷是否符合指定格式
給定字符串str,檢查其是否符合如下格式
XXX-XXX-XXXX
其中X為Number類型
function matchesPattern(str) { return /^(\d{3}-){2}\d{4}&/.test(str); }
5、判斷是否符合USD格式
給定字符串 str,檢查其是否符合美元書寫格式
以 $ 開始
整數(shù)部分,從個位起,滿 3 個數(shù)字用 , 分隔
如果為小數(shù),則小數(shù)部分長度為 2
正確的格式如:$1,023,032.03 或者 $2.03,錯誤的格式如:$3,432,12.12 或者 $34,344.3**
function isUSD(str) { var regx = /^\$\d{1,3}(,\d{3})*(\.\d{2})?$/; return regx.test(str); }
6、JS實現(xiàn)千位分隔符
function format(number) { var regx = /\d{1,3}(?=(\d{3})+$)/g; return (number + '').replace(regx, '$&,') // $&表示與regx相匹配的字符串 }
7、獲取 url 參數(shù)
獲取 url 中的參數(shù)
指定參數(shù)名稱,返回該參數(shù)的值 或者 空字符串
不指定參數(shù)名稱,返回全部的參數(shù)對象 或者 {}
如果存在多個同名參數(shù),則返回數(shù)組
function getUrlParam(url, key) { var arr = {}; url.replace(/\??(\w+)=(\w+)&?/g, function(match, matchKey, matchValue) { if (!arr[matchKey]) { arr[matchKey] = matchValue; } else { var temp = arr[matchKey]; arr[matchKey] = [].concat(temp, matchValue); } }); if (!key) { return arr; } else { for (ele in arr) { if (ele = key) { return arr[ele]; } } return ''; } }
8、驗證郵箱
function isEmail(email) { var regx = /^([a-zA-Z0-9_\-])+@([a-zA-Z0-9_\-])+(\.[a-zA-Z0-9_\-])+$/; return regx.test(email); }
9、驗證身份證號碼
身份證號碼可能為15位或18位,15位為全數(shù)字,18位中前17位為數(shù)字,最后一位為數(shù)字或者X
function isCardNo(number) { var regx = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; return regx.test(number); }
10、匹配漢字
var regx = /^[\u4e00-\u9fa5]{0,}$/;
11、去除首尾的'/'
var str = '/asdf//'; str = str.replace(/^\/*|\/*$/g, '');
12、判斷日期格式是否符合 '2017-05-11'的形式,簡單判斷,只判斷格式
var regx = /^\d{4}\-\d{1,2}\-\d{1,2}$/
13、判斷日期格式是否符合 '2017-05-11'的形式,嚴格判斷(比較復(fù)雜)
var regx = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
14、IPv4地址正則
var regx = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
15、十六進制顏色正則
var regx = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
16、車牌號正則
var regx = /^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領(lǐng)A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學(xué)警港澳]{1}$/;
17、過濾HTML標簽
var str="<p>dasdsa</p>nice <br> test</br>" var regx = /<[^<>]+>/g; str = str.replace(regx, '');
18、密碼強度正則,最少6位,包括至少1個大寫字母,1個小寫字母,1個數(shù)字,1個特殊字符
var regx = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
19、URL正則
var regx = /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
20、匹配浮點數(shù)
var regx = /^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$/;
21、<OPTION value="待處理">待處理</OPTION>
寫一個正則表達式,匹配 "<OPTION value="待處理">"
var str = '<OPTION value="待處理">待處理</OPTION>'; var regx = /^<.*?>/; var resiult = regx.exec(str)[0];
最后推薦一個練習正則的網(wǎng)站 regulex%7B2%7D%5Cd%7B4%7D%26),可以查看正則匹配的走向
如果喜歡請關(guān)注我的Github,給個Star吧,我會定期分享一些JS中的知識,^_^
相關(guān)推薦:
五道典型的javascript面試題
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com