[英]How to prevent the user from repeating a character more than three times in the same word using jquery
[英]Regex to prevent the same character from appearing more than 3 times in a row
我想要一個 javascript function 可以防止同一字符在輸入字段中連續出現 3 次以上。 我知道如何通過 1 次重復輕松做到這一點。 例如...
function deleteit() {message.value=message.value.replace(/(.)\1/g,'')}
<input type='text' id='message' onkeyup='deleteit()'>
如果您在此處多次輸入相同的字符,則第二個字符將被刪除。 我想最多允許 3 個並在 4 號刪除。 例如,“Yippy.!!” 可以接受,但輸入“Yippy!!!!” 將刪除第 4 個感嘆號。 我嘗試將正則表達式更改為/(..)\1/g
確實有效,但不完全。 它正在刪除 2 個“組”字符,所以如果我輸入“YOYO”之類的內容,它會刪除它。 如何將 4 個或更多相同字符更改為 3 個。
您可以使用
function deleteit() {message.value=message.value.replace(/(.)(\1{2})\1+/g,'$1$2')}
<input type='text' id='message' onkeyup='deleteit()'>
請參閱正則表達式演示。 詳情:
(.)
- 捕獲組 1 ( $1
):除換行符之外的任何字符(\1{2})
- 捕獲第 2 組( $2
):兩個字符等於第 1 組中捕獲的字符\1+
- 與第 1 組中捕獲的字符相同的字符出現一次或多次。或者,或者:
function deleteit() {message.value=message.value.replace(/((.)\2{2})\2+/g,'$1')}
<input type='text' id='message' onkeyup='deleteit()'>
正則表達式詳細信息
((.)\2{2})
- 組 1(替換模式中的$1
指的是該組值):
(.)
- 第 2 組:除換行符以外的任何字符\2{2}
- Group 2 值的兩次出現\2+
- 組 2 值的一次或多次出現請參閱正則表達式演示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.