首页 > 解决方案 > 在Javascript中的输入字段编号中查找特定数字

问题描述

我正在开发一个 Binary2Decimal 转换器应用程序,当用户在输入字段中输入 0 和 1 以外的值时,单击转换时它应该提醒用户输入有效的二进制数。

下面是我的代码:


const binary = document.querySelector('.decimalConvertor__binary--bin');
const decimal = document.querySelector('.decimalConvertor__decimal--dec');
const submit = document.querySelector('.decimalConvertor__submit--sub');

submit.addEventListener('click', e => {
  const bin = binary.value;
  if(bin !== '' && ' ') {
    if(bin.length <=8) {
      let dec = 0;

    for (let i = bin.length-1; i >=0; i--) {
      dec += parseInt(bin[i]) * Math.pow(2, bin.length - 1 - i);
    }
    decimal.value = dec
    }else {
      alert('enter less than 8 numbers')
    }
  }else {
    alert('Please enter valid binary number')
  } 
});

标签: javascriptvalidation

解决方案


试试这个,它使用正则表达式来测试字符串是否包含除 1 和 0 以外的数字,如果是,则显示输入有效二进制数的警报:

var re = new RegExp("([23456789])");

submit.addEventListener('click', e => {
  const bin = binary.value;
  if(bin && !re.test(bin)) {
    if(bin.length <=8) {
      let dec = 0;

    for (let i = bin.length-1; i >=0; i--) {
      dec += parseInt(bin[i]) * Math.pow(2, bin.length - 1 - i);
    }
    decimal.value = dec
    }else {
      alert('enter less than 8 numbers')
    }
  }else {
    alert('Please enter valid binary number')
  } 
});

这是一个您可以创建正则表达式的网站,它会向您展示它们的解释:https ://regexr.com/ 。在那里输入正则表达式以获得解释!


推荐阅读