delphi 第一个字符不能是小数点_元字符的详细解析
生活随笔
收集整理的這篇文章主要介紹了
delphi 第一个字符不能是小数点_元字符的详细解析
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
上一篇文章介紹了正則的用處以及正則中這些元字符的基本含義,但是如果我們只知道那些元字符的含義,不知道怎么使用和加以練習(xí),那么對(duì)于正則我們還只是看見了門檻,并沒有踏入,那么本篇文章就讓我們邁起腳步正式走入正則的世界吧。let's go!
我的學(xué)習(xí)方式是:記憶元字符的含義 + 例子消化 + 案例練習(xí)
首先:咱們的思維導(dǎo)圖來嘍
一、正則的匹配和捕獲
- 匹配:test():查看字符串是否符合這個(gè)正則
- 捕獲:exec()
二、元字符詳細(xì)解析
重點(diǎn)來嘍,搬好小板凳,準(zhǔn)備好好聽課,咳咳咳!1. ^ $
- ^:以那個(gè)元字符開頭
- $:以那個(gè)元字符結(jié)尾
- d:0-9的數(shù)字
- {n}:出現(xiàn)n次
- 注意點(diǎn):想要使用這個(gè),正則表達(dá)式中必須含義結(jié)尾,否則大于n的次數(shù)也是可以測(cè)試通過的,只不過捕獲的時(shí)候還是捕獲n個(gè)
- [n-m]:n與m之間的任意值即可,包括n和m
例子
//匹配的是:以數(shù)字開頭的字符串 let reg = /^d/; console.log(reg.test('name')); //false console.log(reg.test('2020name')); //true console.log(reg.test('name2020')); //false//匹配的是:以數(shù)字結(jié)尾的字符串 let reg = /d$/; console.log(reg.test('name')); //false console.log(reg.test('2020name')); //false console.log(reg.test('name2020')); //true// ^/$兩個(gè)都不加匹配的是:字符串中包含符合規(guī)則的內(nèi)容即可 let reg1 = /d/; //^/$兩個(gè)都加匹配的是:字符串只能是和規(guī)則一致的內(nèi)容 let reg2 = /^d$/案例加強(qiáng)
需求:驗(yàn)證手機(jī)號(hào)碼(11位,第一個(gè)數(shù)字是1,第二位是3-9)//含義就是以1開頭,第二個(gè)數(shù)字為3-9中的任意一個(gè)數(shù)字,其余9位隨意數(shù)字(注意:必須寫結(jié)尾,如果不寫結(jié)尾長(zhǎng)度大于9也是返回true可以匹配的) let reg = /^1[3-9]d{9}$/;2.
- :轉(zhuǎn)義字符
- .:除n之外的任意數(shù)字 例子
案例加強(qiáng)
需求:匹配字符串‘ d’,設(shè)計(jì)到了的轉(zhuǎn)義 (注意:在字符串中也有一些特殊意義的,他們也是需要轉(zhuǎn)義的。比如n在字符串中不是字符串n而是換行)。因此對(duì)于此題的需求‘ d’,代表的是需要匹配一個(gè)和一個(gè)dlet str = 'd',reg = /^d$/; console.log(reg.test(str));3. x|y
- x|y:x或y
- ():分組或提高優(yōu)先級(jí)
例子
//匹配的是:以18開頭或者以29結(jié)尾的都可以 //以下的匹配結(jié)果都為true let reg = /^18|29$/; console.log(reg.test('18')); console.log(reg.test('29')); console.log(reg.test('129')); console.log(reg.test('189')); console.log(reg.test('1829')); console.log(reg.test('182'));//匹配的是:18或者29中的一個(gè) let reg = /^(18|29)$/; console.log(reg.test('18')); console.log(reg.test('29')); console.log(reg.test('129')); console.log(reg.test('189')); console.log(reg.test('1829')); console.log(reg.test('182'));4.[]
- 中括號(hào)出現(xiàn)的字符一般都代表本身的含義(特殊字符就是代表一個(gè)普通的符號(hào):‘.’就是代表‘.’,而不是代表除換行之外的任意字符了)
- 中括號(hào)中不存在多位數(shù)
例子
//匹配的含義是:只能是@或者+的 let reg = /^[@+]$/; console.log(reg.test('@')); //true console.log(reg.test('+')); //true console.log(reg.test('@@')); //false console.log(reg.test('@+')); //false//匹配的含義是:d還是代表0-9 let reg = /^[d]$/; console.log(reg.test('9')); //true console.log(reg.test('')); //false console.log(reg.test('d')); //false//匹配的含義是:1或者8 let reg = /^[18]$/; console.log(reg.test('1')); //true console.log(reg.test('8')); //true console.log(reg.test('18')); //false//匹配的含義是:1或者0-2或者9 let reg = /^[10-29]$/; //匹配的含義是:1或者0-2或者9或(或) let reg = /^[(10-29)]$/;三、常用的正則表達(dá)式
3.1 驗(yàn)證是否為有效數(shù)字
規(guī)則分析:- 1.可能出現(xiàn)+ -號(hào)、也可能不出現(xiàn),但是出現(xiàn)也是只有一個(gè);
- 2.整數(shù)位是一位的時(shí)候可以是0-9,多位的時(shí)候首位不能是0;
- 3.小數(shù)部分可能有也可能沒有,一旦有后面必須有一位:小數(shù)點(diǎn)+數(shù)字
3.2 驗(yàn)證密碼
規(guī)則分析- 數(shù)字、字母、下劃線
- 6~16位
3.3驗(yàn)證真實(shí)姓名
規(guī)則:- 1.漢字:/^[u4E00-u9FA5]$/;
- 2.名字長(zhǎng)度2-10位;
- 3.可能有譯名:·漢字
3.4 驗(yàn)證郵箱
規(guī)則:- 郵箱的名字以‘?dāng)?shù)字字母下劃線-.’幾部分組成,但是-/.不能連續(xù)出現(xiàn)也不能作為開頭 w+((-w+)|(.w+))*;
- @ 后面可以加數(shù)字字母,可以出現(xiàn)多位 @[A-Za-z0-9]+ ;
- 對(duì)@后面名字的補(bǔ)充:多域名 .http://com.cn ;企業(yè)域名 (.|-)[A-Za-z0-9]+)*
- .com/.cn等域名 .[A-Za-z0-9]+
3.5 身份證號(hào)
規(guī)則- 18位
- 最后一位是數(shù)字或者X
- 前6位是省市縣
- 后四位是年
- 后兩位是月 01-12
- 后兩位是日 01-31
- 最后四位
- 最后一位:X或者數(shù)字
- 倒數(shù)第二位:偶數(shù):女 奇數(shù):男 小括號(hào)分組的作用:分組捕獲,不僅可以把大正則匹配信息捕獲到,還可以單獨(dú)捕獲到每個(gè)小分組的內(nèi)容
總結(jié)
以上是生活随笔為你收集整理的delphi 第一个字符不能是小数点_元字符的详细解析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WIN7无法卸载掉中文繁体注音输入法
- 下一篇: 微软MDT 安装与配置(二)