นิพจน์ทั่วไปจำกัดกล่องข้อความให้ป้อนเฉพาะตัวเลขเท่านั้น
ผู้เขียน:Eve Cole
เวลาอัปเดต:2009-06-20 16:52:58
หลายครั้งเราจำเป็นต้องจำกัดประเภทของเนื้อหาที่ป้อนลงในกล่องข้อความเมื่อสร้างแบบฟอร์ม ด้านล่างนี้ เราใช้นิพจน์ทั่วไปเพื่อจำกัดกล่องข้อความให้ป้อนเฉพาะตัวเลข จุดทศนิยม ตัวอักษรภาษาอังกฤษ ตัวอักษรจีน และรหัสอื่นๆ
1. สามารถป้อนได้เฉพาะรหัสตัวเลขในกล่องข้อความ (ไม่สามารถป้อนจุดทศนิยมได้เช่นกัน)
<input onkeyup="this.value=this.value.replace(/D/g,'')" onafterpaste="this.value=this.value.replace(/D/g,'')">
2. ใส่ได้เฉพาะตัวเลข สามารถใส่จุดทศนิยมได้
<input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">
<input name=txt1 onchange="if(/D/.test(this.value)){alert('ป้อนได้เฉพาะตัวเลขเท่านั้น');this.value='';}">
3. ตัวเลขและจุดทศนิยมวิธีที่ 2
<input type=text t_value="" o_value="" onkeypress="if(!this.value.match(/^[+-]?d*?.?d*?$/))สิ่งนี้ .value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[+-]?d+(?:.d+)?)?$ /))this.o_value=this.value" onkeyup="if(!this.value.match(/^[+-]?d*?.?d*?$/))this.value =this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[+-]?d+(?:.d+)?)?$/) )this.o_value=this.value" onblur="if(!this.value.match(/^(?:[+-]?d+(?:.d+)?|.d* ?)?$/))this.value=this.o_value;else{if(this.value.match(/^.d+$/))this.value=0+this.value;if(this.value .match(/^.$/))this.value=0;this.o_value=this.value}">
4. สามารถป้อนได้เฉพาะตัวอักษรและตัวอักษรจีนเท่านั้น
<input onkeyup="value=value.replace(/[d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[d]) /g,''))" ความยาวสูงสุด=10 ชื่อ="ตัวเลข">
5. สามารถป้อนได้เฉพาะตัวอักษรภาษาอังกฤษและตัวเลขเท่านั้น แต่ไม่สามารถป้อนตัวอักษรจีนได้
<input onkeyup="value=value.replace(/[^w./]/ig,'')">
6. สามารถป้อนได้เฉพาะตัวเลขและภาษาอังกฤษเท่านั้น
<input onKeyUp="value=value.replace(/[^d|chun]/g,'')">
7. สามารถมีได้สูงสุดสองหลักหลังจุดทศนิยม (สามารถป้อนทั้งตัวเลขและตัวอักษรจีนได้) ไม่สามารถป้อนตัวอักษรและสัญลักษณ์ทางคณิตศาสตร์ได้:
<input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /.dd$/.test(value))event.returnValue=false ">
8. สามารถมีได้สูงสุดสองหลักหลังจุดทศนิยม (สามารถป้อนตัวเลข ตัวอักษร และตัวอักษรจีนได้) และสามารถป้อนสัญลักษณ์ทางคณิตศาสตร์ได้:
<input onkeyup="this.value=this.value.replace(/^(-)*(d+).(dd).*$/,'$1$2.$3')">