1.將手機(jī)號的4大7位替換成*:
使用replace()方法代碼如下:
// 匹配手機(jī)號首尾,以類似“123****8901”的形式輸出
'12345678901'.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
此段正則匹配字符串中的連續(xù)11位數(shù)字,替換中間4位為*號,輸出常見的隱匿手機(jī)號的格式。
如果要僅得到末尾4位,則可以改成如下形式:
// 匹配連續(xù)11位數(shù)字,并替換其中的前7位為*號
'15110280327'.replace(/\d{7}(\d{4})/, '*******$1');
補(bǔ)充注釋:正則表達(dá)式中的括號即可用于分組,同時也用于定義子模式串,在replace()方法中,參數(shù)二中可以使用$n(n為數(shù)字)來依次引用模式串中用括號定義的字串。
2.正則手機(jī)號驗證:
/**
* 驗證手機(jī)號碼
*
* 移動號碼段:139、138、137、136、135、134、150、151、152、157、158、159、182、183、187、188、147
* 聯(lián)通號碼段:130、131、132、136、185、186、145
* 電信號碼段:133、153、180、189
*
* @param cellphone
* @return
*/
public static boolean checkCellphone(String cellphone) {
String regex = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$";
return check(cellphone, regex);
}
/**
* 驗證固話號碼
*
* @param telephone
* @return
*/
public static boolean checkTelephone(String telephone) {
String regex = "^(0\\d{2}-\\d{8}(-\\d{1,4})?)|(0\\d{3}-\\d{7,8}(-\\d{1,4})?)$";
return check(telephone, regex);
}
還有一種簡單的寫法:
/^1[3|4|5|8][0-9]\d{8}$/
^1代表以1開頭,現(xiàn)在中國的手機(jī)號沒有是其它開頭的,以后不一定啊
[3|4|5|8] 緊跟上面的1后面,可以是3或4或5或8的一個數(shù)字,如果以后出現(xiàn)190開始的手機(jī)號碼了,就需要如下[3|4|5|8|9]
[0-9]表示0-9中間的任何數(shù)字,可以是0或9
\d{4,8} 這個\d跟[0-9]意思一樣,都是0-9中間的數(shù)字, {4,8}為4到8位, {8}為8位數(shù)字
3.正則驗證身份證:
var checkId = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
function isCardNo(card)
{
// 身份證號碼為15位或者18位,15位時全為數(shù)字,18位前17位為數(shù)字,最后一位是校驗位,可能為數(shù)字或字符X
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if(!reg.test(card) )
{
alert("身份證輸入不合法");
return false;
}
}
4.正則驗證郵箱格式
第一種:比較簡單,容易理解
var checkEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
解釋一下這對代碼:
開始必須是大(A-Z)小(a-z)寫字母和數(shù)字(0-9)和下劃線()和橫杠(-), + 代表匹配1到多次,然后是@, 后邊是任意字符 后邊是 . 和任意字符, 比較簡單, 值匹配最基本的郵箱格式
適用于這幾種情況:
1、純數(shù)字
比如:123456@jb51.net
2、純字母
3、字母數(shù)字混合
4、帶點的
比如:web.blue@jb51.net
5、帶下劃線
比如:web_blue@jb51.net
6、帶連接線
比如:web-blue@jb51.net
第二種: 第一種方式不支持的嚴(yán)重情況:在開頭和結(jié)尾出現(xiàn)特殊字符 ''