问一个JS用的正则表达式。从-0.5到0,1位小数. 需要控制一个文本框的输入,范围是-0.5到0,保留1位小数。也就是说可以输入的是 -0.5 -0.4 -0.3 -0.2 -0.1 0 六种情况。请问用怎样的正则表达式限制? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script> function test(){ var str=document.getElementById("txt").value var reg=/^-0.[1-5]{1}$/; alert(reg.test(str)) }</script><input type="text" id="txt"><input type="button" value="test" onclick="test()"> BeenZ您好,谢谢您的答复,我的需求是要能够在KeyDown的时候判断。也就是允许用户输入 -0.5 -0.4 -0.3 -0.2 -0.1 0的六种数字。使用您提供的正则表达式如下,不能达到目标。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head> <title>Untitled Page</title></head><body><script> function regInput(obj, reg, inputStr) { var docSel = document.selection.createRange() if (docSel.parentElement().tagName != "INPUT") return false oSel = docSel.duplicate() oSel.text = "" var srcRange = obj.createTextRange() oSel.setEndPoint("StartToStart", srcRange) var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length) return reg.test(str) }</script><input type="text" id="txt" onkeypress = "return regInput(this,/^-0.[1-5]{1}$/,String.fromCharCode(event.keyCode))"><input type="button" value="test" onclick="test()"></body></html>我将代码改为如下,还是不行。请指点。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head> <title>Untitled Page</title></head><body><script> function regInput(obj, reg, inputStr) { var docSel = document.selection.createRange() if (docSel.parentElement().tagName != "INPUT") return false oSel = docSel.duplicate() oSel.text = "" var srcRange = obj.createTextRange() oSel.setEndPoint("StartToStart", srcRange) var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length) return reg.test(str) }</script><input type="text" id="txt" onkeypress = "return regInput(this, /^-{1}|(-0){1}|(-0.){1}|-0.[1-5]{1}$/, String.fromCharCode(event.keyCode))"><input type="button" value="test" onclick="test()"></body></html> 搂主的问题有意思,既然是你要判断每个输入的时候,控件的动作,就必须判断每种可能性。给你个解决方案。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head> <title>Untitled Page</title></head><body><script> function regInput(obj, reg, inputStr) { var docSel = document.selection.createRange(); if (docSel.parentElement().tagName != "INPUT") return false; oSel = docSel.duplicate(); oSel.text = ""; var srcRange = obj.createTextRange(); oSel.setEndPoint("StartToStart", srcRange); var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length); return reg.test(str); } function test(){ var str=document.getElementById("txt").value var reg=/^-0\.[1-5]{1}|0$/; alert(reg.test(str)) }</script><input type="text" id="txt" onkeypress="return regInput(this, /^(-|-0|-0\.|-0\.[1-5]{1}|0)$/, String.fromCharCode(event.keyCode))"><input type="button" value="test" onclick="test()"></body></html> 每次输入你都要判断的话<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head> <title>Untitled Page</title></head><body><script> function regInput(obj, reg, inputStr) { var docSel = document.selection.createRange() if (docSel.parentElement().tagName != "INPUT") return false oSel = docSel.duplicate() oSel.text = "" var srcRange = obj.createTextRange() oSel.setEndPoint("StartToStart", srcRange) var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length); return reg.test(str) }</script><input type="text" id="txt" onkeypress = "return regInput(this,/^-$|^-0$|^-0.$|^-0.[1-5]{1}$|^0$/,String.fromCharCode(event.keyCode))"><input type="button" value="test" onclick="test()"></body></html> javascript eclipse里的添加图片问题。 100分求一个不使用<script>导入外部JS的方法 JS 特殊字符替换 请教老师! 求助:购物车清空和在空状态时,页面没有跳转。。。。 回车符<br>转义的问题,谢谢1!!! 程序中的js脚本被视为不安全的,有什么办法解决吗? 循环调用一个函数,参数不同,后一个操作必须在前一个执行完才能开始执行,该怎么做? 能否通过javascript将页面另存到本地的,即实现IE"文件"菜单中的"另存为"功能? IE下不支持这样操作? javascript 脚本出错
<script>
function test(){
var str=document.getElementById("txt").value
var reg=/^-0.[1-5]{1}$/;
alert(reg.test(str))
}
</script>
<input type="text" id="txt"><input type="button" value="test" onclick="test()">
也就是允许用户输入 -0.5 -0.4 -0.3 -0.2 -0.1 0的六种数字。
使用您提供的正则表达式如下,不能达到目标。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
</head>
<body>
<script>
function regInput(obj, reg, inputStr) {
var docSel = document.selection.createRange()
if (docSel.parentElement().tagName != "INPUT") return false
oSel = docSel.duplicate()
oSel.text = ""
var srcRange = obj.createTextRange()
oSel.setEndPoint("StartToStart", srcRange)
var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length)
return reg.test(str)
}
</script>
<input type="text" id="txt" onkeypress = "return regInput(this,/^-0.[1-5]{1}$/,String.fromCharCode(event.keyCode))"><input type="button" value="test" onclick="test()"></body>
</html>
我将代码改为如下,还是不行。请指点。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
</head>
<body>
<script>
function regInput(obj, reg, inputStr) {
var docSel = document.selection.createRange()
if (docSel.parentElement().tagName != "INPUT") return false
oSel = docSel.duplicate()
oSel.text = ""
var srcRange = obj.createTextRange()
oSel.setEndPoint("StartToStart", srcRange)
var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length)
return reg.test(str)
}
</script>
<input type="text" id="txt" onkeypress = "return regInput(this, /^-{1}|(-0){1}|(-0.){1}|-0.[1-5]{1}$/, String.fromCharCode(event.keyCode))"><input type="button" value="test" onclick="test()"></body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
</head>
<body>
<script>
function regInput(obj, reg, inputStr) {
var docSel = document.selection.createRange();
if (docSel.parentElement().tagName != "INPUT") return false;
oSel = docSel.duplicate();
oSel.text = "";
var srcRange = obj.createTextRange();
oSel.setEndPoint("StartToStart", srcRange);
var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length);
return reg.test(str);
} function test(){
var str=document.getElementById("txt").value
var reg=/^-0\.[1-5]{1}|0$/;
alert(reg.test(str))
}</script>
<input type="text" id="txt" onkeypress="return regInput(this, /^(-|-0|-0\.|-0\.[1-5]{1}|0)$/, String.fromCharCode(event.keyCode))"><input type="button" value="test" onclick="test()"></body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
</head>
<body>
<script>
function regInput(obj, reg, inputStr) {
var docSel = document.selection.createRange()
if (docSel.parentElement().tagName != "INPUT") return false
oSel = docSel.duplicate()
oSel.text = ""
var srcRange = obj.createTextRange()
oSel.setEndPoint("StartToStart", srcRange)
var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length);
return reg.test(str)
}
</script>
<input type="text" id="txt" onkeypress = "return regInput(this,/^-$|^-0$|^-0.$|^-0.[1-5]{1}$|^0$/,String.fromCharCode(event.keyCode))"><input type="button" value="test" onclick="test()"></body>
</html>