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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

要求輸入框里面必須同時(shí)含有字母,數(shù)字,特殊字符,且不小于8位

標(biāo)簽:
PHP 正則表達(dá)式

一、前言

       我们在做输入框的时候,总是要用正则来限制用户输入的一些条件的,这里的要求是输入框中必须同时含有大小写字母,数组,特殊字符等,行吧,咱们一起研究下。

二、思路

百度出来一个很好的思路:

分析一下,总结需求如下: 
				1.必须包含字母,即字符当中字母的个数>=1; 
				2.必须包含数学,即字符当中的数字个数>=1; 
				3.必须包含特殊字符,即字符当中的特殊字符个数>=1; 

			理论上的需求就是这个样子,不过 
			因为我们思考的都是利用正向思维,然而正则表达式引擎在这一方面支持性不是很好. 
			所以我们得改一种思考方式,试一下反向思考: 
			得出我们新的需求: 
				1.不能全是数字和特殊字符. 
				2.不能全是字符和特殊字符. 
				3.不能全是数字加字母. 

按照这个思路,最终结果是:

'pattern' => '/^(?![^a-zA-Z]+$)(?!\D+$)(?![a-zA-Z0-9]+$).{8,}$/'

经验证无误,可以使用。

end

====================== 2019/3/18===============================

看到评论里面有人要求解释一下,刚好闲来无事,我自己也研究一下,在此解释一下:

1、括号的含义

()表示捕获分组,()会把每个分组里的匹配的值保存起来,使用$n(n是一个数字,表示第n个捕获组的内容)

2、第一个括号中的:?![^a-zA-Z]+$

?! 解释:
(?!exp)为零宽断言,表示断言之后的内容不能是exp,[^a-zA-Z]表示非英文字母,+表示可以有多个,$匹配结尾.
也就是可以理解为非的意思。也就是说不能全是非英文字母,非英文字母代表的是数组和特殊字符,
所以这个就是咱们分析的第一条,不能全是数字和特殊字符

3、 第二个括号中的:?!\D+$

\d 匹配一个数字字符。等价于 [0-9]。
\D 匹配一个非数字字符。等价于 [^0-9]。

这句的意思是不能全部是非数字,必须含有数字,也就是咱们分析的第二条,不能全是字符和特殊字符

4、 第三个括号中的:?![a-zA-Z0-9]+$

这句的意思是不能全是大小写字母和数字,就是咱们分析的第三条,不能全是数字加字母

5、 最后的:.{8,}

.点号匹配任意单个字符,这里主要是配合后面的限制位数使用

      这句代表匹配的整个字符串要大于8个,没有上限,这就是咱们需求中的不小于8位。如果要加上限,可以是:.{8,10},代表匹配的字符串是8-10个。

      其实这些正则的解释,网上都能百度的到,关键就是这种逆向思维很值得学习。单独的正则也比较好理解一些,连到一起反而起到了不可思议的结果。关于正则,我们都在路上!加油

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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

舉報(bào)

0/150
提交
取消