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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

正則表達(dá)式驗(yàn)證接受百分比值

正則表達(dá)式驗(yàn)證接受百分比值

我正在使用正則表達(dá)式來(lái)驗(yàn)證用戶數(shù)據(jù)的輸入數(shù)據(jù)應(yīng)該是帶小數(shù)或不帶小數(shù)的百分比,所以我使用了正則表達(dá)式,但它不起作用,并且在控制臺(tái)中沒(méi)有顯示錯(cuò)誤我想知道是否沒(méi)有錯(cuò)誤,為什么這個(gè)腳本不起作用?預(yù)期輸出(僅允許以下格式):數(shù)字可以是 1-10012.5% // 1 -100 之間的任意數(shù)字12%12.45%$('#percentage').bind('keydown keypress keyup', on);function on(evt) {  var theEvent = evt || window.event;  var key = theEvent.keyCode || theEvent.which;  key = String.fromCharCode( key );  var regex = /^((100)|(\d{1,2}(\.\d*)?))%$/;  if( !regex.test(key) ) {    theEvent.returnValue = false;    if(theEvent.preventDefault) theEvent.preventDefault();  }}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>Percentage : <input type="text" id="percentage" />
查看完整描述

3 回答

?
月關(guān)寶盒

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊

為了驗(yàn)證輸入,您應(yīng)該監(jiān)聽keyup事件并檢查輸入的值以及按下的鍵。


const main = () => {

  $('#percentage').bind({

    focusin: onFocusIn,

    keyup: onChange

  });

};


const onFocusIn = (e) => {

  const $target = $(e.currentTarget);

  $target.data('val', $target.val());

};


const onChange = (e) => {

  const regex = /^((100)|(\d{1,2}(\.\d*)?))%?$/,

    $target = $(e.currentTarget),

    value = $target.val(),

    event = e || window.event,

    keyCode = event.keyCode || event.which,

    isValid = value.trim().length === 0 ||

      (keyInRange(keyCode) && regex.test(value));

  if (!isValid) {

    $target.val($target.data('val'));

    event.preventDefault();

  } else {

    $target.data('val', value);

  }

};


const keyInRange = (keyCode) =>

  (keyCode >= 48 && keyCode <= 57)     || /* top row numbers       */

  (keyCode >= 96 && keyCode <= 105)    || /* keypad numbers        */

  (keyCode === 110 || keyCode === 190) || /* decimal separator     */

  (keyCode === 53)                     || /* percentage            */

  (keyCode === 8 || keyCode === 46);      /* back-space and delete */


main();

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<label for="percentage">

  Percentage:

  <input type="text" id="percentage" placeholder="99.99%" />

</label>


查看完整回答
反對(duì) 回復(fù) 2023-08-18
?
元芳怎么了

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

我假設(shè)您正在尋找簡(jiǎn)單的方法來(lái)進(jìn)行價(jià)值檢查并擱置事件。我收集您需要檢查值是否有%符號(hào),其次除了%符號(hào)之外的值是否是小數(shù)值的數(shù)量?,F(xiàn)在,這本身就是兩個(gè)條件。


條件一檢查


if (!n.includes("%")||n.split('.').length > 2){return;}

它是正則表達(dá)式的短路替代品,用于檢查字符串是否包含您需要在其中出現(xiàn)的值。if 它不只是返回函數(shù)。最重要的是,它還快速檢查字符串僅包含單個(gè) . 我們不希望有人達(dá)到 5.5.5.5.5%。if 它不只是返回函數(shù)。5% 可以,5.5% 也可以。


一旦出現(xiàn) % 符號(hào)性別歧視,則從值中刪除 % 符號(hào)。


完成后,進(jìn)行簡(jiǎn)單的檢查,Math.ceil(parseFloat(x))它所做的就是將值四舍五入。如果返回?cái)?shù)字wala,它起作用了,我剛剛創(chuàng)建了一個(gè)警報(bào),您可以從那里做任何您想做的事情。


function check(n){

if (!n.includes("%")||n.split('.').length > 2){return;}


x = n.replace("%", "");


if(Math.ceil(parseFloat(x))) {console.log(x); } 


}

<input type="text" id="percentage" onblur="check(this.value)" />


查看完整回答
反對(duì) 回復(fù) 2023-08-18
?
撒科打諢

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊

您需要檢查文本框的值#percentage,而不僅僅是最后按下的鍵。

所以: if (!regex.test($('#percentage').value())) {

或類似的規(guī)定


查看完整回答
反對(duì) 回復(fù) 2023-08-18
  • 3 回答
  • 0 關(guān)注
  • 268 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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