正則 電話號(hào)碼 車牌號(hào) 郵政編碼 價(jià)格 漢字 密碼 特殊字符


正則表達(dá)式

? ? 剛搭建了一個(gè)項(xiàng)目框架,因?yàn)轫?xiàng)目中有的地方需要用到正則,所以集成了一些常用的正則表達(dá)式,在這里和大家分享一下.

? ?1. 驗(yàn)證電話號(hào)碼

? ? funcisPhoneNumber()->Bool{

? ? ? ? let phone = "^((1[34578][0-9]{9})|((0\\d{2}-\\d{8})|(0\\d{3}-\\d{7,8})|(0\\d{10,11}))|(((400)-(\\d{3})-(\\d{4}))|((400)-(\\d{4})-(\\d{3}))|((400)-(\\d{5})-(\\d{2}))|(400\\d{7}))|(((800)-(\\d{3})-(\\d{4}))|((800)-(\\d{4})-(\\d{3}))|((800)-(\\d{5})-(\\d{2}))|(800\\d{7})))$"

? ? ? ? letrefextePhone =NSPredicate(format:"SELF MATCHES %@", phone)

? ? ? ? ifrefextePhone.evaluate(with:self) ==true{

? ? ? ? ? ? returntrue

? ? ? ? }

? ? ? ? return false

? ? }

2.移動(dòng)電話

? ? funcisMobilePhone()->Bool{

? ? ? ? let mobilePhone = "^((1[34578][0-9]{9})|((0\\d{2}-\\d{8})|(0\\d{3}-\\d{7,8})|(0\\d{10,11}))$"

? ? ? ? letrefexMobilePhone =NSPredicate(format:"SELF MATCHES %@", mobilePhone)

? ? ? ? ifrefexMobilePhone.evaluate(with:self) ==true{returntrue}

? ? ? ? return false

? ? }



? 3.? ?車牌號(hào)驗(yàn)證

? ? funcisValidCarNo() ->Bool{

? ? ? ? let carRegex = "^[A-Za-z]{1}[A-Za-z_0-9]{5}$"

? ? ? ? letcarTest =NSPredicate(format:"SELF MATCHES %@", carRegex)

? ? ? ? returncarTest.evaluate(with:self)

? ? }


? ? 4. 郵政編碼

? ? funcisValidPostalcode() ->Bool{

? ? ? ? letpostalCodeRegex ="^[0-8]\\d{5}(?!\\d)$"

? ? ? ? letpostalCodeTest =NSPredicate(format:"SELF MATCHES %@", postalCodeRegex)

? ? ? ? returnpostalCodeTest.evaluate(with:self)

? ? }

? ? 5.價(jià)格

? ? funcisPrice() ->Bool{

? ? ? ? letpostalCodeRegex ="^\\d+(\\.\\d+)?$"

? ? ? ? letpostalCodeTest =NSPredicate(format:"SELF MATCHES %@", postalCodeRegex)

? ? ? ? returnpostalCodeTest.evaluate(with:self)

? ? }

?????6.數(shù)字和字母

? ? varisBarCode:Bool{

? ? ? ? letemailRegex ="^[A-Za-z0-9]+$"

? ? ? ? return NSPredicate(format: "SELF MATCHES %@", emailRegex).evaluate(with: self)

? ? }

? ? ? ?7.數(shù)字

? ? varisNumber:Bool{

? ? ? ? letemailRegex ="^[0-9]*$"

? ? ? ? return NSPredicate(format: "SELF MATCHES %@", emailRegex).evaluate(with: self)

? ? }

? ? 8.Email validation

? ? varisEmail:Bool{

? ? ? ? let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}"

? ? ? ? return NSPredicate(format: "SELF MATCHES %@", emailRegex).evaluate(with: self)

? ? }

? ? 9.驗(yàn)證密碼是否符合規(guī)則 8-20位字符画恰,必須包含字母和數(shù)字吧享,字母區(qū)分大小寫

? ? varisPwdConformRule:Bool

? ? {

? ? ? ? let match = "(^(?=.*[0-9])(?=.*[a-zA-Z])(.{8,20})$)"

? ? ? ? return NSPredicate(format: "SELF MATCHES %@", match).evaluate(with: self)

? ? }

? ? 10. Email validation

? ? varisPhoneNumber:Bool{

? ? ? ? let phoneRegex = "^((1[34578][0-9]{9})|((0\\d{2}-\\d{8})|(0\\d{3}-\\d{7,8})|(0\\d{10,11}))|(((400)-(\\d{3})-(\\d{4}))|((400)-(\\d{4})-(\\d{3}))|((400)-(\\d{5})-(\\d{2}))|(400\\d{7}))|(((800)-(\\d{3})-(\\d{4}))|((800)-(\\d{4})-(\\d{3}))|((800)-(\\d{5})-(\\d{2}))|(800\\d{7})))$"

? ? ? ? return NSPredicate(format: "SELF MATCHES %@", phoneRegex).evaluate(with: self)

? ? }

????11.是否是漢字

? ? varisCarlisence:Bool{

? ? ? ? let carlisence = "^([\\u4e00-\\u9fa5]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{5})$"

? ? ? ? return NSPredicate(format: "SELF MATCHES %@", carlisence).evaluate(with: self)

? ? }

? ? 12.中文判斷

? ? varisNickName:Bool{

? ? ? ? let nickNameReg = "^([\\u4E00-\\u9FA5]{2,30}$)"

? ? ? ? return NSPredicate(format: "SELF MATCHES %@",nickNameReg).evaluate(with: self)

? ? }

13.名字(漢字字母數(shù)字)

? ? varisName:Bool{

? ? ? ? let nameReg = "^([\\u4E00-\\u9FA5A-Za-z0-9_]{2,10}$)"

? ? ? ? return NSPredicate(format: "SELF MATCHES %@",nameReg).evaluate(with: self)

? ? }

? ? 14.是否存在特殊字符

? ? varisHaveSpecialCharacter:Bool{

? ? ? ? let nameReg = "^([\\u4E00-\\u9FA5A-Za-z0-9]*$)"

? ? ? ? return NSPredicate(format: "SELF MATCHES %@",nameReg).evaluate(with: self)

? ? }

? ? 15.驗(yàn)證是否有非字母和數(shù)字之外的字符

? ? varisTaxNumber:Bool{

? ? ? ? lettaxNumber ="^[A-Za-z0-9]+$"

? ? ? ? return NSPredicate(format: "SELF MATCHES %@", taxNumber).evaluate(with: self)

? ? }

? ? 16.驗(yàn)證是否有非字母數(shù)字下劃線@之外的字符

? ? varisEmailCharacter:Bool{

? ? ? ? let taxNumber = "^[a-zA-Z0-9_@.]*$"

? ? ? ? return NSPredicate(format: "SELF MATCHES %@", taxNumber).evaluate(with: self)

? ? }

? ? 17.驗(yàn)證是否有非字母數(shù)字*_&@.,?!符號(hào)-之外的字符

? ? varisTKHCharacter:Bool{

? ? ? ? let taxNumber = "^[a-zA-Z0-9*_&@.,?!.]*$"

? ? ? ? return NSPredicate(format: "SELF MATCHES %@", taxNumber).evaluate(with: self)

? ? }

? ? 18.驗(yàn)證是否有非字母數(shù)字下劃線之外的字符

? ? varisUserNameCharacter:Bool{

? ? ? ? lettaxNumber ="^[a-zA-Z0-9_]*$"

? ? ? ? return NSPredicate(format: "SELF MATCHES %@", taxNumber).evaluate(with: self)

? ? }

? ? 19.價(jià)格

? ? funcisPrice() ->Bool{

? ? ? ? let price = "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))|(\\.[0-9]+)|[0-9]*[1-9][0-9]*\\.$"

? ? ? ? return NSPredicate(format: "SELF MATCHES %@", price).evaluate(with: self)

? ? }

? ? 20.身份證號(hào)

? ? funcisIDCardNum() ->Bool{

? ? ? ? let idCard = "(^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$)|(^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{2}[0-9Xx]$)"

? ? ? ? return NSPredicate(format: "SELF MATCHES %@", idCard).evaluate(with: self)

? ? }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盅抚,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡倔矾,警方通過查閱死者的電腦和手機(jī)妄均,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哪自,“玉大人丰包,你說我怎么就攤上這事∪老铮” “怎么了邑彪?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長胧华。 經(jīng)常有香客問我锌蓄,道長升筏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任瘸爽,我火速辦了婚禮,結(jié)果婚禮上铅忿,老公的妹妹穿的比我還像新娘剪决。我一直安慰自己,他們只是感情好檀训,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布柑潦。 她就那樣靜靜地躺著,像睡著了一般峻凫。 火紅的嫁衣襯著肌膚如雪渗鬼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天荧琼,我揣著相機(jī)與錄音譬胎,去河邊找鬼。 笑死命锄,一個(gè)胖子當(dāng)著我的面吹牛堰乔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播脐恩,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼镐侯,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了驶冒?” 一聲冷哼從身側(cè)響起苟翻,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎骗污,沒想到半個(gè)月后崇猫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡身堡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年邓尤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贴谎。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡汞扎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出擅这,到底是詐尸還是另有隱情澈魄,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布仲翎,位于F島的核電站痹扇,受9級(jí)特大地震影響铛漓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鲫构,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一浓恶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧结笨,春花似錦包晰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至赫模,卻和暖如春树肃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瀑罗。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國打工胸嘴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人廓脆。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓筛谚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親停忿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子驾讲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容