JavaScript 仅接受 0 到 255 范围内的数字

2023-12-05

我的要求是验证 IP 范围,我需要创建一个 JavaScript 函数来仅接受数字,并且它必须只允许在 0 到 255 范围内。如果输入的任何内容超出该范围,它必须发出警报消息。

我目前正在使用以下功能

<script language="JavaScript"> 

function allownums(a) 
{ 

if(a <48 ||a > 57) 
alert("invalid") 
else 
alert("vaild") 
} 

</script> 
<input type='text' id='numonly' onkeypress='allownums(event.keycode)'> 

我是 JavaScript 新手,需要一些专家的建议来解决我的需求。请推荐我

谢谢 苏迪尔


目前您正在进行测试

(a < 48) || (a > 57)

对于无效值。所以我会改变这些:

(a < 0 ) || (a > 255)

您可能还需要考虑如何处理像 2.3 这样的非整数输入 - 要么将其四舍五入,要么将其视为无效。

目前,正如 Kelvin Mackay 指出的那样,您正在对按键事件而不是输入值执行验证,因此将 onkeypress 更改为allownums(this.value).

我建议将警报更改为 div 中的警告,并使用验证来启用/禁用提交按钮,因为弹出窗口在几乎所有情况下都非常烦人。

当输入无效时清除输入(按照评论中的要求)会让用户感到相当烦人;一旦按下某个键添加一个数字并使输入无效,整个输入就会被清除。然而,代码是:

if(!validnum(this.value)) 
    this.value="";

在输入标签中,因此:

<input type='text' id='numonly' 
      onkeyup='if(!validnum(this.value)) this.value="";'>

函数改为:

function validnum(a) { 
    if(a < 0 || a > 255) 
        return false;
    else 
        return true;
} 

或者更简洁地说:

function validnum(a) {
    return ((a >= 0) && (a <= 255));
}

编辑:要警告并清除该框,如果您必须:

function validOrPunchTheUser(inputElement) {
    if(!validnum(inputElement.value)) {
        window.alert('badness'); // punch the user
        inputElement.value = ""; // take away their things
    }
}

<input type='text' id='numonly' 
      onkeyup='validOrPunchTheUser(this)'>

然而,阅读其他答案,显然您正在寻求验证一个八位字节(例如在 IP 地址中)。如果是这样,请在问题中说明这一点,因为它今天经过了我。对于一个八位字节:

function validateIPKeyPress(event) {
    var key = event.keyCode;
    var currentvalue = event.target.value;
    if(key < 96 || key > 105)
    {
        event.preventDefault();
        window.alert('pain');
        return false;
    }
    else if(currentvalue.length > 2 ||
            (currentvalue.length == 2 &&
             key > 101)) {
        window.alert('of death');
        event.preventDefault();
        event.target.value = event.target.value.substring(0,2);
    }
    else
        return true;
}

使用输入标签:

<input type='text' id='octet'
          onkeydown='validateIPKeyPress(event)'>

除非请不要使用警报。如果您删除警报线,它将默默地阻止无效输入。请注意现在使用 onkeydown 的更改,以便我们可以捕获无效的按键并完全防止值发生更改。如果必须清除输入,请执行以下操作if(!validateIPKeyPress(event)) this.value = "";.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 仅接受 0 到 255 范围内的数字 的相关文章

  • 如何将div内容添加到jspdf中的新页面?

    如何将div内容添加到jspdf中的新页面 我尝试使用 br 它创建了一个新页面 但我看不到内容 div div style margin 3px 430px First Page div div Place content to Seco
  • 单击按钮重复动画

    我想每次单击按钮时都重复动画 我尝试做某事像这样 https jsfiddle net 91raod7e const dist document querySelector dist document querySelector butto
  • 如何实现 JavaScript 对象被垃圾回收时触发的函数?

    实际上 垃圾被收集 销毁或以其他方式超出范围 我想要做的是 当调用了 bind 方法的对象被销毁时 取消绑定非 DOM 元素上的事件处理程序 编辑 我又查看了我的代码 并决定我真正需要它的唯一地方是当不再需要包含该对象的模块时 这通常发生在
  • 使用 parsley.js 支持每个字段多个自定义错误消息

    我正在尝试使用 parsley js 验证一个简单的表单 并且我对 parsley js 非常初学者 我想使用 window ParsleyValidator addValidator 方法在一个自定义验证方法中显示多个错误消息 所以我尝试
  • 在淘汰赛应用程序中使用 setInterval 进行轮询实现?

    我正在尝试使用 setInterval 实现简单的轮询机制 我有一个视图模型如下 define knockout jquery function ko function ViewModel var self this setInterval
  • 未捕获的类型错误:无法读取未定义的属性“toLowerCase”

    我收到此错误 它源自 jquery 框架 当我尝试加载准备好的文档上的选择列表时 出现此错误 我似乎无法找到为什么会出现此错误 它适用于更改事件 但在尝试手动执行该函数时出现错误 未捕获的类型错误 无法读取未定义的属性 toLowerCas
  • 将随机字符串转换为十六进制颜色

    我的应用程序中有一个操作日志表 我想根据该条目的 sessionID 为行分配随机颜色 以帮助查看模式 分组操作 到目前为止我有这个 console log stringToColorCode mj3bPTCbIAVoNr93me1I fu
  • 匹配数组中的对象并合并

    UPDATE 我有一个名为的对象数组cars包含 li 标签 其中包含有关汽车的属性数据 例如价格 汽车类型等 我的目标是 如果这些汽车符合某些标准 则将它们合并到一个列表中 要求 快速性能 保持相同的汽车数组结构 Main Goal Ma
  • 用不同的颜色为 Google 热图着色

    我试图开发一个遵循 Google Map API 的热度 https developers google com maps documentation javascript examples layer heatmap https deve
  • React 不响应按键事件

    我正在尝试实现一些非常基本的按键检测 但我根本无法让它工作 我有一个裸露的组件 应该在onKeyDown事件 但控制台中没有任何内容被注销 class App extends React Component constructor prop
  • javascript中输入类型时间的值

    我有这个html
  • 将上部字符转换为下部字符,将下部字符转换为上部字符(反之亦然)[重复]

    这个问题在这里已经有答案了 我需要将某些字符串中的所有较低字符转换为较高字符 并将所有较高字符转换为较低字符 例如 var testString heLLoWorld 应该 HEllOwORLD 转换后 在不保存临时字符串的情况下实现此目的
  • Sequelize.js - “不关联到”

    我在从数据库获取完整数据时遇到一些问题 那是我的模型 User module exports function sequelize DataTypes return sequelize define user id type DataTyp
  • 为什么 document.getelementbyId 在 Firefox 中不起作用?

    我不明白为什么 document getElementById 在 Firefox 中不起作用 document getElementById main style width 100 当我检查 Firebug 时 它说 类型错误 docu
  • Cosmos DB 中的 MaxItemCount 源选项属性不起作用

    我正在尝试编写一个运行 SQL 查询的简单存储过程 并且我想通过使用 MaxItemCount 属性来限制结果 查询生成 3 个文档 但我只想返回 1 个文档 我使用 MaxItemCount 属性强制执行此限制 但这似乎不起作用 func
  • 如何查看网站浏览者的操作系统?

    我运行的是 Ubuntu 8 04 最近在访问网站时收到以下错误 请使用运行 Windows 98 2000 Me NT 或 XP 的计算机返回 www site com 网站如何知道我正在运行哪个操作系统 是仅通过 javascript
  • ExpressJS - DELETE 请求后 res.redirect

    我一直在寻找如何执行此操作 我正在尝试在发出删除请求后重定向 这是我正在使用的代码没有重定向 exports remove function req res var postId req params id Post remove id p
  • javascript:window.print() 打印 2 页,而我有 1 页

    我有一个简单的 HTML 文档 其中仅包含图像标签 我想在文档加载后打印图像 我的代码 img src form1 jpg alt form1 style margin 0 auto display block 它可以工作 但问题是它打印图
  • 如何按字母顺序排序并先小写排序

    如何获得以下排序的结果Food to Eat然后是 食物123 显然 第二个较低的 o 应该将 要吃的食物 带到排序后的第一个项目中 我很惊讶这个问题不容易通过谷歌找到答案 这个壮举没有包含在 javascript 标准中也让我感到惊讶 F
  • 将 div 文本分配给变量然后显示它

    我有一个简单的任务 我试图完成学习 JavaScript 但一直无法找到明确的答案 这是代码 div Testing div 基本上我希望将方框 div 中的文本存储到变量中 然后 我想在页面的不同部分显示该变量的文本 使用上面的代码我得到

随机推荐

  • 如何在画布上制作可拖动的矩形?

    我有这三个函数来触发事件 我已经有了我的需求的静态版本 但我需要它的动态版本 bool captured false double x shape x canvas y shape y canvas UIElement source nul
  • 如何从 QMdiSubWindow 中删除 Qt 图标

    尝试从 QMdiSubWindow 中删除 Qt 图标 但收效甚微 下图显示了左上角的图标 这是一些代码 看起来应该将图标设置为空 但事实并非如此 QMdiSubWindow sub new QMdiSubWindow sub gt set
  • Javascript 全局变量的生命周期

    我是Javascript初学者 当我学习 Javascript 全局变量生命周期时 它说 全局变量的生命周期从声明时开始 并且 当页面关闭时结束 我读到Javascript会将全局变量存储到window对象中 而它什么时候会被摧毁呢 关闭网
  • 突出显示 ListView 选定的行

    我有一张专辑列表 几百张 当我触摸所选专辑时 我想为用户提供播放整个专辑或移至其曲目 ListView 的选择 没问题 但是 在触摸 albumListView 中的专辑后 我希望该行保持突出显示 以便用户知道他们单击了哪个项目 然后可以移
  • 如何避免饼图中标签和 autopct 重叠

    我的Python代码是 values 234 64 54 10 0 1 0 9 2 1 7 7 months Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec colors yellowgree
  • 使用 keras Convolutional1D Layer 时出现负维度错误

    我正在尝试使用 Keras 创建一个 char cnn 那种类型的 cnn 需要你使用Convolutional1D层 但是我尝试将它们添加到模型中的所有方法 都会在创建阶段给我带来错误 这是我的代码 def char cnn n voca
  • 有没有办法使用 jquery 或 javascript 检测用户是否按下了刷新按钮?

    我想知道 jquery 或 javascript 是否可以检测用户是否按下了浏览器的刷新按钮 如果可以的话我可以看一个例子吗 无法检测用户在页面刷新之前是否按下了刷新 但您可以使用 cookie 来确定页面在第二次加载后是否刷新 例如 每个
  • 在 Objective-C 中如何确定我的方法的“调用者”? [复制]

    这个问题在这里已经有答案了 所以我有一个相当复杂的应用程序 我可能天真地同意 调试 在进入某个方法后 我想打印出尽可能多的信息 包括谁调用了该方法 从哪个类 方法等调用了该方法 任何建议将非常感激 只需添加您的方法 NSLog Show s
  • 为什么边缘消失速度很慢?

    如中所述这个答案 边缘淡入ScrollView可能会很慢 我想知道 为什么 使用褪色边缘可能会导致明显的性能下降 并且仅应在应用程序的视觉需要时使用 设计 要请求 API 级别 14 及以上的淡入淡出边缘 请使用android requir
  • jQuery - 单击时如何将锚点滚动到页面顶部?

    我有一个链接列表divelements 我正在使用 dropcontent js 将内容加载到另一个元素中div单击链接时 我现在想添加一些代码 将单击的链接滚动到浏览器窗口的顶部 列表中每个项目的 HTML 如下所示 div class
  • 二维数组的分段错误

    有一个奇怪的分段错误错误 下面的代码运行良好 include
  • 在 ASP.NET MVC 中启用会话状态

    我想在 ASP NET MVC 应用程序中使用会话变量 我已经添加了
  • 如何限制 Sitecore 语言仅写入内容树的某些部分

    在我们的 Sitecore 实施中 我们有分支编辑器 他们需要英语及其母语 例如德语 的语言写入权限 但是 我们的内容树的某些部分不应由这些分支编辑器编辑英文版本 但母语版本可以 举一个具体的例子 如果我们有一个产品页面 其中包含一些全局信
  • JAVA_HOME指向错误的地方

    我似乎有一个错误指定的 JAVA HOME 变量 我可以解决很多事情 但现在我似乎陷入困境 我正在尝试使用 Google App Engine 并上传应用程序 当我这样做时 我收到错误 找不到基于java home的javac可执行文件 尝
  • 不缓存从 glassfish 安全页面引用的静态资源

    我正在使用 JSF 1 2 和 glassfish 声明性安全性以及 j security check 我的 xhtml 页面位于安全页面文件夹 我通过将 Web 资源约束设置为安全约束来保护其中的所有资源 secure pages 我的
  • Android Studio 内联编译器显示红色错误,但使用 gradle 编译工作正常

    我已经在 Android Studio 中设置了我的项目以使用方线库 按照这个问题 Build gt Compile Project工作正常 2 03 10 PM Compilation completed successfully in
  • node-gyp 重建 - 错误:`gyp` 失败,退出代码:1

    我在 CentOS 6 8 上进行 node gyp 重建时遇到错误 File usr local lib node modules node gyp gyp pylib gyp input py line 295 in LoadBuild
  • RestSharp 压缩请求,同时对服务器进行休息调用

    我正在我的 C 客户端中使用用 java 编写的 REST API 我将大量数据传输到服务器 并且使用 RestSharp dll 来进行休息调用 我要做的是构造一个对象并将其直接添加到 RestSharp 请求对象的主体中 并为其提及 n
  • URL 屏蔽不适用于省略尾部斜杠的 URL

    类似的问题还有很多 但似乎没有一个完全适合我 我正在从 WordPress 网站迁移到简单的静态网站 但是 我目前被禁止删除托管在public html完全文件夹 直到证明所有内容都可以在静态站点上使用 我已将静态站点部署到我的子子文件夹中
  • JavaScript 仅接受 0 到 255 范围内的数字

    我的要求是验证 IP 范围 我需要创建一个 JavaScript 函数来仅接受数字 并且它必须只允许在 0 到 255 范围内 如果输入的任何内容超出该范围 它必须发出警报消息 我目前正在使用以下功能