Javascript 如何限制文本框仅输入十六进制值

Javascript 如何限制文本框仅输入十六进制值,javascript,jquery,html,Javascript,Jquery,Html,我的HTML表单中有一个文本框,我想限制用户在其中输入一个介于0和f之间的十六进制值。我怎么做 我的HTML文本框代码: <div class="input-resp-hpux-vbus"><span><input class="textbox" id="vbus-id" name="vbus-id" type="text" size="5" maxlength="3" value="<?php if(isset($_POST['vbus-id'])) {

我的HTML表单中有一个文本框,我想限制用户在其中输入一个介于0和f之间的十六进制值。我怎么做

我的HTML文本框代码:

<div class="input-resp-hpux-vbus"><span><input  class="textbox" id="vbus-id" name="vbus-id" type="text" size="5" maxlength="3"  value="<?php if(isset($_POST['vbus-id'])) { echo htmlentities ($_POST['vbus-id']); }?>" /></span></div>
试试这个


函数isValidhex(ele){
var isOk=/(^#[0-9A-F]{6}$)(^#[0-9A-F]{3}$)/i.test(ele.value);
返回值(isOk)?ele.value=“”:真;
}
试试这个


函数isValidhex(ele){
var isOk=/(^#[0-9A-F]{6}$)(^#[0-9A-F]{3}$)/i.test(ele.value);
返回值(isOk)?ele.value=“”:真;
}
您可以在提交前或按键后使用并验证:

您可以在提交前或按键后使用并验证:


试试这个regex
(0-9[A-F])+
可能重复的试试这个regex
(0-9[A-F])+
可能重复的当测试是明显的选择时为什么人们使用匹配<代码>/^#[a-f0-9]{6}$/i.test
,它返回一个布尔值,无需进行测试或转换。如果你真的想使用匹配,考虑<代码>!!str.match(/^#[a-f0-9]{6}$/i)。哦,有效的十六进制颜色值可以有3或6位数字。:-)我可以在JSFIDLE中输入任何值。我已使用函数ele.value=”“中的此行将输入值重置为null。检查此无变化。尝试在此小提琴中输入除0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f以外的值并检查。我正在为此寻找一个onkeyup函数(在提交表单之前)。当测试是明显的选择时,为什么人们使用匹配<代码>/^#[a-f0-9]{6}$/i.test,它返回一个布尔值,无需进行测试或转换。如果你真的想使用匹配,考虑<代码>!!str.match(/^#[a-f0-9]{6}$/i)。哦,有效的十六进制颜色值可以有3或6位数字。:-)我可以在JSFIDLE中输入任何值。我已使用函数ele.value=”“中的此行将输入值重置为null。检查此无变化。尝试在此小提琴中输入除0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f以外的值,并检查。我正在为此寻找onkeyup函数(在表单提交之前)。我尝试了onkeyup函数。但是没有给出任何警报警告我已经试过使用“$”(“#vbus id”).bind('keyup',function(){var control=document.getElementById('vbus-id');if(!control.test(/^([A-Fa-f0-9]{2}){8,9}$/);警报('invalid');});'抱歉@acr,上次更新错误。现在是更正plz:-if(!regExp.test(control)到if(!regExp.test(control)),if conditionThnx@SharifHridoyKhan.Done处缺少第一个大括号结尾。我用onkeyup函数尝试了这个方法。但没有给出任何警告我用`$('#vbus id')尝试过。bind('keyup',function(){var control document getElementById('vbus-id');if(!control.test(/^([A-Fa-f0-9]{2}{8,9}$/);alert('invalid');});'sorry@acr,上次更新错误。现在更正plz:-if(!regExp.test(control)到if(!regExp.test(control));if conditionThnx@SharifHridoyKhan.处缺少第一个支撑端。完成。
<div class="input-resp-hpux-vbus"><span><input  class="textbox" id="vbus-id" name="vbus-id" type="text" size="5" maxlength="4" onblur="isValidhex(this)"  value="" /></span></div>

function isValidhex(ele) {
     var isOk  =  /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(ele.value);
    return (isOk)?ele.value ="" :true ;
}
var control = document.getElementById('vbus-id')';
var regExp = new RegExp(/^0x[0-9A-F]{1,4}$/i);
if (!regExp.test(control))
   alert('invalid');