当前位置:编程学习 > JS >>

JS输入限制,不符要求不能输入的代码

原以为这个一个输入判断,后来运行一下原来不是这样子,感觉还不错,它可以限制你的输入必须符合规定的条件,如果不符合根本就不能输入,对那些晕子很管用。
答案:<title>JS输入限制,不符要求不能输入的代码</title>
<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>

小写英文:<xmp style= "display:inline"></xmp>
<input	onkeypress	= "return regInput(this,	/^[a-z]*$/,		String.fromCharCode(event.keyCode))"
		onpaste		= "return regInput(this,	/^[a-z]*$/,		window.clipboardData.getData('Text'))"
		ondrop		= "return regInput(this,	/^[a-z]*$/,		event.dataTransfer.getData('Text'))"
		style="ime-mode:Disabled"
>


大写英文:<xmp style= "display:inline">	</xmp>
<input	onkeypress	= "return regInput(this,	/^[A-Z]*$/,		String.fromCharCode(event.keyCode))"
		onpaste		= "return regInput(this,	/^[A-Z]*$/,		window.clipboardData.getData('Text'))"
		ondrop		= "return regInput(this,	/^[A-Z]*$/,		event.dataTransfer.getData('Text'))"
		style="ime-mode:Disabled">



任意数字:<xmp style="display:inline">	</xmp>
<input	onkeypress	= "return regInput(this,	/^[0-9]*$/,		String.fromCharCode(event.keyCode))"
		onpaste		= "return regInput(this,	/^[0-9]*$/,		window.clipboardData.getData('Text'))"
		ondrop		= "return regInput(this,	/^[0-9]*$/,		event.dataTransfer.getData('Text'))"
		style="ime-mode:Disabled"
>


限2位小数:<xmp style="display:inline">	</xmp>
<input	onkeypress	= "return regInput(this,	/^\d*\.?\d{0,2}$/,		String.fromCharCode(event.keyCode))"
		onpaste		= "return regInput(this,	/^\d*\.?\d{0,2}$/,		window.clipboardData.getData('Text'))"
		ondrop		= "return regInput(this,	/^\d*\.?\d{0,2}$/,		event.dataTransfer.getData('Text'))"
		style="ime-mode:Disabled"
> 如: 123.12



日   期:<xmp style="display:inline">	</xmp>
<input	onkeypress	= "return regInput(this,	/^\d{1,4}([-\/](\d{1,2}([-\/](\d{1,2})?)?)?)?$/,		String.fromCharCode(event.keyCode))"
		onpaste		= "return regInput(this,	/^\d{1,4}([-\/](\d{1,2}([-\/](\d{1,2})?)?)?)?$/,		window.clipboardData.getData('Text'))"
		ondrop		= "return regInput(this,	/^\d{1,4}([-\/](\d{1,2}([-\/](\d{1,2})?)?)?)?$/,		event.dataTransfer.getData('Text'))"
		style="ime-mode:Disabled"
> 如: 2002-9-29


任意中文:<xmp style="display:inline">	</xmp>
<input	onkeypress	= "return regInput(this,	/^$/,					String.fromCharCode(event.keyCode))"
		onpaste		= "return regInput(this,	/^[\u4E00-\u9FA5]*$/,	window.clipboardData.getData('Text'))"
		ondrop		= "return regInput(this,	/^[\u4E00-\u9FA5]*$/,	event.dataTransfer.getData('Text'))"
>


部分英文:<xmp style="display:inline">	</xmp>
<input	onkeypress	= "return regInput(this,	/^[a-e]*$/,		String.fromCharCode(event.keyCode))"
		onpaste		= "return regInput(this,	/^[a-e]*$/,		window.clipboardData.getData('Text'))"
		ondrop		= "return regInput(this,	/^[a-e]*$/,		event.dataTransfer.getData('Text'))"
		style="ime-mode:Disabled"
> 范围: a,b,c,d,e
部分中文:<xmp style="display:inline">	</xmp>
<script language=javascript>
function checkChinese(oldLength, obj)
{
	var oTR = window.document.selection.createRange()
	var reg = /[^一二三四五六七八九十]/g
	oTR.moveStart("character", -1*(obj.value.length-oldLength))
	oTR.text = oTR.text.replace(reg, "")
}
</script>
<input	onkeypress="return false" onkeydown="setTimeout('checkChinese('+this.value.length+','+this.uniqueID+')', 1)"
		onpaste		= "return regInput(this,	/^[一二三四五六七八九十]*$/,		window.clipboardData.getData('Text'))"
		ondrop		= "return regInput(this,	/^[一二三四五六七八九十]*$/,		event.dataTransfer.getData('Text'))"
> 范围: 一二三四五六七八九十

上一个:JavaScript检测EMail地址输入是否正确
下一个:让一个文本框只有输入数字,其它均不能输入

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,