1、JS正则表达式判断字符串是否包含中文字符
var file.name = "xxxxx哈哈哈.txt"
var resultNameqian = file.name.split('.')[0];
var reg = new RegExp("[\\u4E00-\\u9FFF]+","g");
if(reg.test(resultNameqian)){
console.log('含有中文字符');
alert("含有中文字符,不让上传")
}
2、总所周知,正则表达式主要用于字符串处理、表单验证等,简单的代码量实现复杂的功能
实际应用(g表示全局匹配)
去除字符串中的空格(正则匹配再去除)
\s* 表示若干个空格(可以是0个)。
\s+ 表示一个或多个空格.
var reg = /\s+/g;
var str = "22 55 66 88";
var ctr = str.replace(reg,",");
console.log(ctr);
打印结果:22;55;66;88
3、正则匹配特殊字符
var regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im; //英文特殊字符
var regCn = /[·!#¥(——):;“”‘、,|《。》?、【】[\]]/im; //中文特殊字符
if(regEn.test(newName) || regCn.test(newName)) {
alert("名称不能包含中英文特殊字符.");
return false;
}
4、正则匹配中文汉字
var reg = /[\u4e00-\u9fa5]/g;
var str = "中22 55国66 8梦8";
var ctr = str.replace(reg,"赞");
console.log(ctr);
输出结果:赞22 55赞66 8赞8
5、身份证号码的一个校验
A、先做一个简单的位数校验来判断身份证的合法性:(15位数字或18位数字或17位数字加X|x)
var reg=/(^\d{15}$)|(^\d{18}$)|(^\d{17}(^\d|X|x)$)/
if(reg.test(num) === false){
alert("你输入的身份证不合法");
return false;
}
B、18位=前六位地区+中八位出生日期+后4位顺序号(最后一个可以是数字或者X,x)
这我针对年份过滤(18xx-20xx),在对月份(01-12),日期(01-31)
其中正则表达式如下(我发现网上很多都是简单判断,日期和月份出现00都没有过滤掉):
var reg = /(^\d{6}((([1])([8|9]))|(([2])([0])))(\d{2})((([0])([1-9]))|(([1])([1-2])))((([0])([1-9]))|(([1-2])([0-9]))|(([3])([0-1])))(\d{3}(\d|X|x))$)/;
if(reg.test(num) === false){
alert("你输入的身份证不合法");
return false;
}
6、E-mail邮箱的校验
var emil=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
在网页中插入邮箱输入框,当邮箱输入格式错误,给出提示。
代码:
function yy(){
var t = /^[A-Za-zd0-9]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/;
var y=document.getElementById("y");
if(!(t.test(y.value)))
{
var txt=document.getElementById("txt_5");
txt.innerText="邮箱格式不正确!";
}else{
var txt=document.getElementById("txt_5");
txt.innerText="";
}
}
<div class="anli">
<li>
<span>1、只能输入数字的输入框</span>
<span>
<input type="text"
name=""
id="aa"
value=""
autocomplete="off"
οnkeyup="this.value=this.value.replace(/\D/g,'')"
onafterpaste="this.value=this.value.replace(/\D/g,'')"
/>
</span> <hr/>
</li>
<li>
<span>2、只能输入数字【加字符限制】的输入框</span>
<span>
<input type="text"
name=""
id="bb"
value=""
maxlength="15"
autocomplete="off"
οnkeyup="this.value=this.value.replace(/\D/g,'')"
onafterpaste="this.value=this.value.replace(/\D/g,'')"
/>
</span> <hr/>
</li>
<li>
<span>3、只能输入【大小写英文】的输入框</span>
<span>
<input type="text"
name=""
id="cc"
value=""
maxlength="15"
autocomplete="off"
οnkeyup="this.value=this.value.replace(/[^\a-\z\A-\Z]/g,'')"
οnpaste="this.value=this.value.replace(/[^\a-\z\A-\Z]/g,'')"
οncοntextmenu="value.replace(/[^\a-\z\A-\Z]/g,'')"
/>
</span> <hr/>
</li>
<li>
<span>4、只能输入【小写英文】的输入框</span>
<span>
<input type="text"
name=""
id="dd"
value=""
maxlength="15"
autocomplete="off"
οnkeyup="this.value=this.value.replace(/[^\a-\z]/g,'')"
οnpaste="this.value=this.value.replace(/[^\a-\z]/g,'')"
οncοntextmenu="value.replace(/[^\a-\z]/g,'')"
/>
</span> <hr/>
</li>
<li>
<span>5、只能输入【大写英文】的输入框</span>
<span>
<input type="text"
name=""
id="ee"
value=""
maxlength="15"
autocomplete="off"
οnkeyup="this.value=this.value.replace(/[^\A-\Z]/g,'')"
οnpaste="this.value=this.value.replace(/[^\A-\Z]/g,'')"
οncοntextmenu="value.replace(/[^\A-\Z]/g,'')"
/>
</span> <hr/>
</li>
<li>
<span>6、检测手机号的校验</span>
<span>
<input type="text"
class="phone"
maxlength="11"
autocomplete="off"
οnblur="checkPhone(this)"
/>
</span> <hr/>
</li>
<li>
<span>7、只能输入数字,只有1个小数点、 小数点后两位</span>
<span>
<input type="text" name="" οninput="inputnum(this)">
</span> <hr/>
</li>
<li>
<span>8、只能输入【汉字】</span>
<span>
<input type="text"
name=""
id=""
autocomplete="off"
οnkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
/>
</span> <hr/>
</li>
<li>
<span>9、只能输入【数字和英文】</span>
<span>
<input type="text"
autocomplete="off"
οnkeyup="value=value.replace(/[\W]/g,'') "
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
/>
</span> <hr/>
</li>
<li>
<span>10、只能输入【汉字和字母】</span>
<span>
<input id="a" type="text" οninput="test123();" />
</span> <hr/>
</li>
<li>
<span>11、(经度负180 到 正180之间)正则正数、负数、-只能在最前面有这个符号、小数点</span>
<span>
<input type="text" id="text1">
</span>
<hr/>
</li>
</div>
<script type="text/javascript">
$('#text1').keyup(function(){ // 键盘抬起时
var text=$('#text1').val(); // input框内容
var value=text.length; // input框内容长度
var a=text.substr(0,1) // input框内容的第一个元素
var obj=document.querySelector("#text1")
if(value>0){ // 判断input框的长度,如果大于0(也就是input框内已经输入了内容)
if(a=='-'){ // 同时载判断输入的第一个元素是不是‘-’,如果则input框内只能输入‘-’/数字/‘.’
obj.value=obj.value.replace(/[^\-\d\.]/g,'');
}else{ //如果输入的元素第一个不是‘-’,则input框内只能输入数字/‘.’
obj.value=obj.value.replace(/[^\d\.]/g,'');
}
obj.value=obj.value.replace(/\.{2,}/g,''); // 点只能出现一次
obj.value=obj.value.replace(".","$#$").replace(/\./g,'').replace("$#$",".");
obj.value=obj.value.replace(/\-{2,}/g,''); // 减号只能出现一次
obj.value=obj.value.replace('-','$#$').replace(/\-/g,'').replace('$#$','-');
obj.value=obj.value.replace(/^(\-)*(\d+)\.(\d+).*$/,'$1$2.$3')
if(obj.value-0 >180 || obj.value-0 <-180){
console.log("不正确")
$("#text1").val("")
}else{
console.log("正确")
}
}
})
</script>
<script type="text/javascript">
//检测手机
function checkPhone(obj){
var phone = obj.value;
if(!(/^1[3|4|5|8][0-9]\d{8}$/.test(phone))){
alert("不是完整的11位手机号或者正确的手机号");
$(".phone").val("")
return false;
}
}
function inputnum(obj,val){
obj.value = obj.value.replace(/[^\d.]/g,""); //清除"数字"和"."以外的字符
obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字
obj.value = obj.value.replace(/\.{2,}/g,""); //只保留第一个, 清除多余的
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'); //\d 表示的点 只能输入两个小数
}
// 汉字和英文===正则表达式
function checkUsername(){
var reg = new RegExp("^[A-Za-z0-9\u4e00-\u9fa5]+$");
var username = document.getElementById("username").value.trim();
if(!reg.test(username)){
alert("请输入中文、数字和英文!");
$("#username").val("");
}
}
function test123(){
var regx = /^[\u4E00-\u9FA5A-Za-z0-9]+$/
var value = document.getElementById("a").value
if(regx.test(value)){
console.log("格式正确1111")
} else {
console.log("格式错误2222")
$("#a").val("");
}
}
</script>