左右若干數(shù)字驗(yàn)證的正則表達(dá)式
更新時(shí)間:2009年11月04日 20:49:00 作者:
求一個(gè)正則表達(dá)式,要求左邊若干數(shù)字,中間間隔號(hào)-,右邊若干數(shù)字,左右數(shù)字總個(gè)數(shù)不超過20。希望能直接用,不用其它函數(shù)進(jìn)行計(jì)算。
?<=和?=和?:這三種各是什么意思 ,請(qǐng)講解一下。
你的答案很精辟,謝謝。
給你寫了一段示例,用javascript寫的,你說的左右數(shù)字總個(gè)數(shù)不超過20,加上“-”即字符串總長(zhǎng)度不超過21。如下:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
測(cè)試后能滿足你的要求。
你想問的應(yīng)該是以下四個(gè)環(huán)視結(jié)構(gòu)。它們不匹配任何具體的字符,只匹配一個(gè)位置,就像“^”和“$”匹配字符串的起始和結(jié)束位置。
(?=...) 正向肯定環(huán)視。其中“...”是一個(gè)正則表達(dá)式,表示在當(dāng)前位置的右邊的字符必須被“...”所匹配。
(?!...) 正向否定環(huán)視。表示當(dāng)前位置右邊的內(nèi)容必須不能被“...”所匹配。
(?<=...)和(?<!...)分別是反向肯定環(huán)視和反向否定環(huán)視,只不過方向是左邊。
至于(?:),它與普通的括號(hào)()功能相同,區(qū)別是它不會(huì)將子匹配儲(chǔ)存起來。某些情況下使用(?:)能提高正則表達(dá)式的效率。
再來說說表達(dá)式“/^(?=.{3,21}$)\d+-\d+$/”:
^(?=.{3,21}$) 規(guī)定了從字符串的起始位置開始,后面有3-21個(gè)任意字符,接著就是字符串的結(jié)束了。
\d+-\d+$ 這個(gè)是你的題目要求,沒什么好說的了吧。
你的答案很精辟,謝謝。
給你寫了一段示例,用javascript寫的,你說的左右數(shù)字總個(gè)數(shù)不超過20,加上“-”即字符串總長(zhǎng)度不超過21。如下:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
測(cè)試后能滿足你的要求。
你想問的應(yīng)該是以下四個(gè)環(huán)視結(jié)構(gòu)。它們不匹配任何具體的字符,只匹配一個(gè)位置,就像“^”和“$”匹配字符串的起始和結(jié)束位置。
(?=...) 正向肯定環(huán)視。其中“...”是一個(gè)正則表達(dá)式,表示在當(dāng)前位置的右邊的字符必須被“...”所匹配。
(?!...) 正向否定環(huán)視。表示當(dāng)前位置右邊的內(nèi)容必須不能被“...”所匹配。
(?<=...)和(?<!...)分別是反向肯定環(huán)視和反向否定環(huán)視,只不過方向是左邊。
至于(?:),它與普通的括號(hào)()功能相同,區(qū)別是它不會(huì)將子匹配儲(chǔ)存起來。某些情況下使用(?:)能提高正則表達(dá)式的效率。
再來說說表達(dá)式“/^(?=.{3,21}$)\d+-\d+$/”:
^(?=.{3,21}$) 規(guī)定了從字符串的起始位置開始,后面有3-21個(gè)任意字符,接著就是字符串的結(jié)束了。
\d+-\d+$ 這個(gè)是你的題目要求,沒什么好說的了吧。
相關(guān)文章
正則表達(dá)式實(shí)現(xiàn)手機(jī)號(hào)中間4位數(shù)隱藏或者只顯示末尾四位數(shù)
這篇文章主要介紹了正則表達(dá)式實(shí)現(xiàn)手機(jī)號(hào)中間4位數(shù)隱藏或者只顯示末尾四位數(shù)的相關(guān)知識(shí),需要的朋友可以參考下2018-11-11Jmeter?使用Json提取請(qǐng)求數(shù)據(jù)的方法
這篇文章主要介紹了Jmeter?使用Json提取請(qǐng)求數(shù)據(jù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04js正則表達(dá)式驗(yàn)證URL函數(shù)代碼(方便多個(gè)正則對(duì)比)
下面是一段相對(duì)全面的用例測(cè)試,可以考慮使用,當(dāng)然,如果你的要求很簡(jiǎn)單,用網(wǎng)上傳的各種簡(jiǎn)單版,cover到自己的用例就好。2016-10-10