Baseline Widely available
pattern
屿§è§å®äºä¸ä¸ªè¡¨åæ§ä»¶çå¼åºè¯¥å¹é
çæ£å表达å¼ã妿ä¸ä¸ªé null
å¼ä¸æ»¡è¶³ pattern
å¼è®¾ç½®ç约æï¼ValidityState
对象çåªè¯»å±æ§ patternMismatch
å°ä¸º trueã
<label for="username">Username: (3-16 characters)</label>
<input
id="username"
name="username"
type="text"
value="Sasha"
pattern="\w{3,16}"
required />
<label for="pin">PIN: (4 digits)</label>
<input id="pin" name="pin" type="password" pattern="\d{4,4}" required />
label {
display: block;
margin-top: 1em;
}
input:valid {
background-color: palegreen;
}
input:invalid {
background-color: lightpink;
}
æ¦è¿°
pattern
屿§æ¯ textãtelãemailãurlãpassword å search çè¾å
¥ç±»åç屿§ã
å½æå® pattern
屿§æ¶ï¼å®æ¯ä¸ä¸ªæ£å表达å¼ï¼ä»£è¡¨è¾å
¥ç value
å¿
é¡»ä¸ä¹å¹é
ï¼ä»¥ä¾¿è¯¥å¼è½å¤éè¿çº¦æéªè¯ãå®å¿
é¡»æ¯ä¸ä¸ªææç JavaScript æ£å表达å¼ï¼å®ä¼è¢« RegExp
ç±»åæä½¿ç¨ï¼æ£å¦æä»¬çæ£åè¡¨è¾¾å¼æåä¸æè¿°ï¼å¨ç¼è¯æ£åè¡¨è¾¾å¼æ¶æå® 'u'
æ å¿ï¼ä»¥ä¾¿å°è¯¥æ¨¡å¼ä½ä¸º Unicode ç ç¹åºåï¼è䏿¯ ASCIIãæ¨¡å¼ææ¬å¨å´ä¸åºæå®æ£ææ ã
å¦ææ²¡ææå®æ¨¡å¼ææ æï¼åä¸åºç¨æ£å表达å¼ï¼æ¤å±æ§è¢«å¿½ç¥ã
夿³¨ï¼ è¯·ä½¿ç¨ title
屿§æ¥æå®å¤§å¤æ°æµè§å¨å°ä½ä¸ºå·¥å
·æç¤ºæ¾ç¤ºçææ¬ï¼ä»¥è§£éå¹é
该模å¼çè¦æ±æ¯ä»ä¹ãä¸è½ä»
ä»
ä¾é å·¥å
·æç¤ºæ¥è¿è¡è§£éãå
³äºå¯ç¨æ§çæ´å¤ä¿¡æ¯è§ä¸æã
ä¸äºæ¯æ pattern
屿§çè¾å
¥ç±»åï¼ç¹å«æ¯ email å urlï¼æå¿
é¡»å¹é
ç颿å¼è¯æ³ã妿 pattern
屿§ä¸åå¨ï¼å¹¶ä¸å¼ä¸ç¬¦å该å¼ç±»åçé¢æè¯æ³ï¼ ValidityState
对象çåªè¯» typeMismatch
屿§å°ä¸º trueã
å½å
æ¬ä¸ä¸ª pattern
æ¶ï¼å¨æ§ä»¶éè¿çå¯è§ææ¬ä¸æä¾å¯¹æ¨¡å¼çæè¿°ãæ¤å¤ï¼å
æ¬ä¸ä¸ª title
屿§å¯¹è¯¥æ¨¡å¼è¿è¡æè¿°ãç¨æ·ä»£çå¯ä»¥å¨çº¦æéªè¯æé´ä½¿ç¨æ é¢å
容æ¥åè¯ç¨æ·è¯¥æ¨¡å¼ä¸å¹é
ãä¸äºæµè§å¨ä¼æ¾ç¤ºæ é¢å
容çå·¥å
·æç¤ºï¼ä»¥æé«è§åéç¢è
çå¯ç¨æ§ãæ¤å¤ï¼å½æ§ä»¶è·å¾ç¦ç¹æ¶ï¼è¾
婿æ¯å¯è½ä¼å¤§å£°æè¯»æ é¢ï¼ä½æ éç¢ææ¯ä¸åºä¾èµå®ã
妿è¾å
¥çå¼ä¸æ¯ç©ºå符串ï¼å¹¶ä¸è¯¥å¼ä¸æ´ä¸ªæ£å表达å¼ä¸å¹é
ï¼é£ä¹ ValidityState
对象ç patternMismatch
屿§ä¸º true
ï¼å°±ä¼åºç°è¿åçº¦ææ¡ä»¶çç°è±¡ã模å¼çæ£å表达å¼å¨ä¸å¼å¹é
æ¶ï¼å
¶å¼å§é¨åå¿
须确å®å¨å符串çå¼å§é¨åï¼å
¶ç»æé¨åå¿
须确å®å¨å符串çç»æé¨åï¼è¿ä¸ JavaScript æ£å表达å¼ç¥æä¸åï¼å¨æ¨¡å¼å±æ§çæ
åµä¸ï¼æä»¬æ¯ä¸æ´ä¸ªå符串å¹é
ï¼èä¸ä»
ä»
æ¯ä»»ä½åéï¼å¦å卿¨¡å¼çå¼å§é¨åéå« ^(?:
ï¼èå¨ç»æé¨åéå« )$
ã
夿³¨ï¼ 妿 pattern
屿§è¢«æå®ä¸ºç©ºå¼ï¼å
¶å¼éå«ä¸ºç©ºå符串ãå æ¤ï¼ä»»ä½é空çè¾å
¥ value
é½ä¼å¯¼è´çº¦æè¿åã
èèå°ä»¥ä¸æ åµï¼
<p>
<label>
æ (123) - 456 - 7890 æ ¼å¼è¾å
¥ä½ ççµè¯å·ç (<input
name="tel1"
type="tel"
pattern="[0-9]{3}"
placeholder="###"
aria-label="3 ä½åºå·"
size="2" />) -
<input
name="tel2"
type="tel"
pattern="[0-9]{3}"
placeholder="###"
aria-label="3 ä½åç¼"
size="2" />
-
<input
name="tel3"
type="tel"
pattern="[0-9]{4}"
placeholder="####"
aria-label="4 ä½å·ç "
size="3" />
</label>
</p>
å¨è¿éï¼æä»¬æ 3 个é¨åç¨äºä¸ä¸ªåç¾ççµè¯å·ç ï¼å
¶éå«çæ ç¾å
å«äºçµè¯å·ç çææä¸ä¸ªç»æé¨åï¼å嫿æ 3 使°ã3 使°å 4 使°ï¼è¿æ¯ç± pattern
屿§è®¾å®çã
妿å¼å¤ªé¿æå¤ªçï¼æå
å«ä¸æ¯æ°åçå符ï¼patternMismatch å°ä¸º trueãå½ä¸º true
æ¶ï¼è¯¥å
ç´ ä¸ :invalid
CSS 伪类å¹é
ã
input:invalid {
border: red solid 3px;
}
妿æä»¬ç¨ minlength
å maxlength
屿§ä»£æ¿ï¼æä»¬å¯è½ä¼çå° validityState.tooLong
æ validityState.tooShort
为 trueã
ä½ å¯ä»¥ä½¿ç¨ pattern
屿§æ¥æå®ä¸ä¸ªæ£å表达å¼ï¼è¾å
¥çå¼å¿
é¡»ä¸ä¹å¹é
ï¼æè½è¢«è§ä¸ºææï¼åè§æ ¹æ®æ£å表达å¼è¿è¡éªè¯äºè§£å
³äºä½¿ç¨æ£åè¡¨è¾¾å¼æ¥éªè¯è¾å
¥çç®åéæè¯¾ç¨ï¼ã
ä¸é¢çä¾åå°å¼éå¶ä¸º 4-8 个å符ï¼å¹¶è¦æ±å®åªå å«å°å忝ã
<form>
<div>
<label for="uname">éæ©ä¸ä¸ªç¨æ·åï¼</label>
<input
type="text"
id="uname"
name="name"
required
size="45"
pattern="[a-z]{4,8}"
title="4 å° 8 个å°å忝" />
<span class="validity"></span>
<p>ç¨æ·åå¿
须为å°å忝ï¼ä¸é¿åº¦ä¸º 4-8 个å符</p>
</div>
<div>
<button>æäº¤</button>
</div>
</form>
div {
margin-bottom: 10px;
position: relative;
}
p {
font-size: 80%;
color: #999;
}
input + span {
padding-right: 30px;
}
input:invalid + span::after {
position: absolute;
content: "â";
padding-left: 5px;
}
input:valid + span::after {
position: absolute;
content: "â";
padding-left: 5px;
}
è¿å°æ¸²æä¸ºå¦ä¸å½¢å¼ï¼
æ éç¢æ³¨æäºé¡¹å½ä¸ä¸ªæ§ä»¶æä¸ä¸ª pattern
屿§æ¶ï¼å¦æä½¿ç¨ title
屿§ï¼åå¿
é¡»ç¨äºæè¿°è¯¥æ¨¡å¼ãä¾é title
屿§æ¥æ¾ç¤ºææ¬å
容é常æ¯ä¸å¯åçï¼å 为许å¤ç¨æ·ä»£çå¹¶ä¸ä»¥æ éç¢çæ¹å¼æ´é²è¯¥å±æ§ãä¸äºæµè§å¨å¨æ¬åå¸¦ææ é¢çå
ç´ æ¶æ¾ç¤ºå·¥å
·æç¤ºï¼ä½è¿å°±æé¤äºåªç¨é®çååªç¨è§¦æ¸å±çç¨æ·ãè¿å°±æ¯ä½ å¿
é¡»å
æ¬åç¥ç¨æ·å¦ä½å¡«åæ§ä»¶ä»¥ç¬¦åè¦æ±çå 个åå ä¹ä¸ã
è½ç¶ title
被ä¸äºæµè§å¨ç¨æ¥å¡«å
é误信æ¯ï¼ä½ç±äºæµè§å¨ææ¶ä¹ä¼å¨æ¬åæ¶å°æ 颿¾ç¤ºä¸ºææ¬ï¼å æ¤å¨éé误æ
åµä¸ä¹ä¼æ¾ç¤ºï¼æä»¥è¦æ³¨æä¸è¦å°æ é¢åæåçäºéè¯¯çæ ·åã
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4