第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

正則表達(dá)式添加 10 位數(shù)字的限制,十進(jìn)制值沒有限制

正則表達(dá)式添加 10 位數(shù)字的限制,十進(jìn)制值沒有限制

PHP
慕蓋茨4494581 2023-04-23 17:54:40
我想在需要 10 位數(shù)字限制但小數(shù)點(diǎn)后的值沒有限制的地方應(yīng)用驗證。像這樣 1000000000.2121 小數(shù)點(diǎn)前的值應(yīng)該小于 10 位。我正在嘗試這個正則表達(dá)式 ^(10|\d)(\.\d{1,2})?$但是通過這個,我只添加了兩個限制的十進(jìn)制數(shù)字。我怎樣才能做到這一點(diǎn)?
查看完整描述

4 回答

?
鴻蒙傳說

TA貢獻(xiàn)1865條經(jīng)驗 獲得超7個贊

小數(shù)點(diǎn)前的值應(yīng)小于10位

此模式允許 0 到 9 位數(shù)字,然后可選地允許小數(shù)點(diǎn)后跟無限位數(shù)字。

如果您的要求是小數(shù)點(diǎn)前至少有一位數(shù)字,則更{0-9}改為{1,9}.

如果您的要求是小數(shù)點(diǎn)前有零到十位數(shù)字,則更{0,9}改為{0,10}.

代碼:

$tests = [

? ? '12345678901',

? ? '1234567890',

? ? '123456789',

? ? '1234567890.1',

? ? '1234567.8901',

? ? '1234.5678901',

? ? '1.2345678901',

? ? '.12345678901',

];


foreach ($tests as $test) {

? ? var_export([$test, (bool)preg_match('~^\d{0,9}(?:\.\d+)?$~', $test)]);

? ? echo "\n";

}

輸出:


array (

? 0 => '12345678901',

? 1 => false,

)

array (

? 0 => '1234567890',

? 1 => false,

)

array (

? 0 => '123456789',

? 1 => true,

)

array (

? 0 => '1234567890.1',

? 1 => false,

)

array (

? 0 => '1234567.8901',

? 1 => true,

)

array (

? 0 => '1234.5678901',

? 1 => true,

)

array (

? 0 => '1.2345678901',

? 1 => true,

)

array (

? 0 => '.12345678901',

? 1 => true,

)


查看完整回答
反對 回復(fù) 2023-04-23
?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗 獲得超3個贊

如果總數(shù)不應(yīng)超過 10,并且數(shù)字不能以逗號開頭,則可以斷言不是 11 位,并保留匹配\d+1 位或更多位的數(shù)字。

^(?!(?:[^\d\r\n]*\d){11})\d+(?:\.\d+)?$

解釋

  • ^字符串的開始

  • (?!Negative lookahead,斷言右邊的不是

    • (?:[^\d\r\n]*\d){11}匹配任何字符的 11 次,除了換行符后跟一個數(shù)字

  • )關(guān)閉前瞻。

  • \d+匹配 1 個以上的數(shù)字

  • (?:\.\d+)?可選擇匹配一個點(diǎn)和 1+ 個數(shù)字

  • $字符串結(jié)束

查看完整回答
反對 回復(fù) 2023-04-23
?
素胚勾勒不出你

TA貢獻(xiàn)1827條經(jīng)驗 獲得超9個贊

你在陳述兩件事(并沒有展示很多可以使用的例子):

  • "小數(shù)點(diǎn)前的值應(yīng)小于10位"

  • “我需要 10 位數(shù)字的限制,但小數(shù)點(diǎn)后的值沒有限制”

哪一個?我采用了第一個假設(shè),即不能超過 9 位數(shù)字,但必須至少有一個。同樣對于數(shù)字有效性,我認(rèn)為只以單個零或根本不從零開始是有意義的:

^(?:0|[1-9]\d{0,8})(?:\.\d+)?$

  • ^- 開始字符串錨。

  • (?:- 第一個非捕獲組。

    • 0|[1-9]\d{0,8}- 單個零1-9 之間的單個數(shù)字,后跟零到 8 個數(shù)字,以保持在 10 位以下。

  • )- 關(guān)閉第一個非捕獲組。

  • (?:- 第二非捕獲組。

    • \.\d+- 一個文字點(diǎn)后跟一個或多個數(shù)字。

  • )- 關(guān)閉第二個非捕獲組。

  • ?- 使第二個非捕獲組可選。

  • $- 結(jié)束弦錨。

http://img1.sycdn.imooc.com/6445008e000188c103210091.jpg

注意:如果您允許數(shù)字以點(diǎn)開頭,這可以簡化。



查看完整回答
反對 回復(fù) 2023-04-23
?
慕娘9325324

TA貢獻(xiàn)1783條經(jīng)驗 獲得超4個贊

以下模式適用于 <= 10 位數(shù)字到點(diǎn)之前的值和點(diǎn)之后的任意數(shù)量的數(shù)字。

$b = preg_match("!^\d{1,10}(\.\d*)?$!",109.9);


查看完整回答
反對 回復(fù) 2023-04-23
  • 4 回答
  • 0 關(guān)注
  • 395 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號