日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

delphi 第一个字符不能是小数点_元字符的详细解析

發(fā)布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 delphi 第一个字符不能是小数点_元字符的详细解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
上一篇文章介紹了正則的用處以及正則中這些元字符的基本含義,但是如果我們只知道那些元字符的含義,不知道怎么使用和加以練習,那么對于正則我們還只是看見了門檻,并沒有踏入,那么本篇文章就讓我們邁起腳步正式走入正則的世界吧。let's go!

我的學習方式是:記憶元字符的含義 + 例子消化 + 案例練習

首先:咱們的思維導圖來嘍

一、正則的匹配和捕獲

  • 匹配:test():查看字符串是否符合這個正則
  • 捕獲:exec()
關于這兩個方法的具體介紹,會在下一篇文章中介紹,本文章的主要內容是元字符的具體含義、使用

二、元字符詳細解析

重點來嘍,搬好小板凳,準備好好聽課,咳咳咳!

1. ^ $

  • ^:以那個元字符開頭
  • $:以那個元字符結尾
  • d:0-9的數字
  • {n}:出現n次
    • 注意點:想要使用這個,正則表達式中必須含義結尾,否則大于n的次數也是可以測試通過的,只不過捕獲的時候還是捕獲n個
  • [n-m]:n與m之間的任意值即可,包括n和m

例子

//匹配的是:以數字開頭的字符串 let reg = /^d/; console.log(reg.test('name')); //false console.log(reg.test('2020name')); //true console.log(reg.test('name2020')); //false//匹配的是:以數字結尾的字符串 let reg = /d$/; console.log(reg.test('name')); //false console.log(reg.test('2020name')); //false console.log(reg.test('name2020')); //true// ^/$兩個都不加匹配的是:字符串中包含符合規(guī)則的內容即可 let reg1 = /d/; //^/$兩個都加匹配的是:字符串只能是和規(guī)則一致的內容 let reg2 = /^d$/

案例加強

需求:驗證手機號碼(11位,第一個數字是1,第二位是3-9)//含義就是以1開頭,第二個數字為3-9中的任意一個數字,其余9位隨意數字(注意:必須寫結尾,如果不寫結尾長度大于9也是返回true可以匹配的) let reg = /^1[3-9]d{9}$/;

2.

  • :轉義字符
  • .:除n之外的任意數字 例子
// 匹配的是:以2開頭 以3結尾 中間是出來換行之外的任意字符 let reg = /^2.3$/; console.log(reg.test('2.3')); //true console.log(reg.test('2@3')); //true console.log(reg.test('23')); //false// 匹配的是:以2開頭 以3結尾 中間是小數點 //=》也就是匹配2.3 這里的‘.’轉義為了普通的‘.’ let reg = /^2.3$/; console.log(reg.test('2.3')); //true console.log(reg.test('2@3')); //false

案例加強

需求:匹配字符串‘ d’,設計到了的轉義 (注意:在字符串中也有一些特殊意義的,他們也是需要轉義的。比如n在字符串中不是字符串n而是換行)。因此對于此題的需求‘ d’,代表的是需要匹配一個和一個dlet str = 'd',reg = /^d$/; console.log(reg.test(str));

3. x|y

  • x|y:x或y
  • ():分組或提高優(yōu)先級
直接x|y會存在很亂的優(yōu)先級問題,一般我們寫的時候都伴隨著小括號進行分組,因為小括號改變處理的優(yōu)先級 => 小括號:分組

例子

//匹配的是:以18開頭或者以29結尾的都可以 //以下的匹配結果都為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中的一個 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.[]

  • 中括號出現的字符一般都代表本身的含義(特殊字符就是代表一個普通的符號:‘.’就是代表‘.’,而不是代表除換行之外的任意字符了)
  • 中括號中不存在多位數

例子

//匹配的含義是:只能是@或者+的 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)]$/;

三、常用的正則表達式

3.1 驗證是否為有效數字

規(guī)則分析:
  • 1.可能出現+ -號、也可能不出現,但是出現也是只有一個;
  • 2.整數位是一位的時候可以是0-9,多位的時候首位不能是0;
  • 3.小數部分可能有也可能沒有,一旦有后面必須有一位:小數點+數字
/^[+-]?(d|([1-9]d+))(.d+)?$/

3.2 驗證密碼

規(guī)則分析
  • 數字、字母、下劃線
  • 6~16位
///使用常規(guī)的寫法(不用正則) let val= userPass.value; function check(val){if(val.length>16 || val.length<6){alert('長度不符合');return;}let area = ['a','b',...'_'];//數字,字母、下劃線for(let i = 0;i<val.length;i++){let char = val[i];if(!area.includes(char)){alert('必須包含數字字母下劃線');return;} } }//使用正則驗證 /^w{6~16}$/

3.3驗證真實姓名

規(guī)則:
  • 1.漢字:/^[u4E00-u9FA5]$/;
  • 2.名字長度2-10位;
  • 3.可能有譯名:·漢字
//補充一個怎么打出在中間位置出現的點,哈哈,我在敲的時候也沒有找到,問了度娘才知道: //中文狀態(tài)下,ESC下面的那個鍵就是(中文狀態(tài)中文狀態(tài)中文狀態(tài),重要的事情說三遍。。。哈哈) /^[u4E00-u9FA5]{2,10}(·[u4E00-u9FA5]{2,10})?$/

3.4 驗證郵箱

規(guī)則:
  • 郵箱的名字以‘數字字母下劃線-.’幾部分組成,但是-/.不能連續(xù)出現也不能作為開頭 w+((-w+)|(.w+))*;
  • @ 后面可以加數字字母,可以出現多位 @[A-Za-z0-9]+ ;
  • 對@后面名字的補充:多域名 .http://com.cn ;企業(yè)域名 (.|-)[A-Za-z0-9]+)*
  • .com/.cn等域名 .[A-Za-z0-9]+
/^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/

3.5 身份證號

規(guī)則
  • 18位
  • 最后一位是數字或者X
  • 前6位是省市縣
  • 后四位是年
  • 后兩位是月 01-12
  • 后兩位是日 01-31
  • 最后四位
  • 最后一位:X或者數字
  • 倒數第二位:偶數:女 奇數:男 小括號分組的作用:分組捕獲,不僅可以把大正則匹配信息捕獲到,還可以單獨捕獲到每個小分組的內容
/^([1-9]d{5})((19|20)d{2})([1-9]|10|11|12)([1-9]|[1-2]d|30|31)d{3}(d|x)$/i 以上就是使用正則中元字符的具體使用情況和項目中使用到的場景,可能不是特別全,寫的不是特別細,但是小編也在努力學習中,提高知識的層次上,文學能力也在提高 (咳咳!上學的時候語文就學的不咋樣,可能我就是理工科中那個學習不怎么樣,但是理科生身上的那種標簽卻。。。哈哈,其實我們理科生偶爾也是浪漫的,不是那么的直。。。)

總結

以上是生活随笔為你收集整理的delphi 第一个字符不能是小数点_元字符的详细解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。