js实现:'w5-8' -> /^\w{5,8}$/

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js实现:‘w5-8‘ -> /^\w{5,8}$/</title>
<style>
body{padding: 100px;}
.abs{position: absolute;}
.rel{position: relative;}
.inp{height: 30px;line-height: 30px;text-indent: 5px;width: 200px;}
.error{color: red;left: 0;top: 40px;}
.zoom{clear: both;}
.mb40{margin-bottom: 40px;}
.btn{display: block;width: 100px;height: 40px;line-height: 40px;text-align: center;color: #fff;background-color: orange;text-decoration: none;}
</style>
</head>
<body>
    <div class="rel zoom mb40">
        <input type="text" class="inp" data-type="w5-8" data-error="请填写5-8位包括下划线的任何单词字符">
        <div class="error abs"></div>
    </div>
    <div class="rel zoom mb40">
        <input type="text" class="inp" data-type="w10-12" data-error="请填写10-12位包括下划线的任何单词字符">
        <div class="error abs"></div>
    </div>
<script src="v1.js"></script>
<script src="test.js"></script>
</body>
</html>

JS:

$(function () {

    bindW($(‘.inp‘));

    function bindW(obj) {
        $.each(obj, function () {
            var my = $(this),
                error = my.siblings(‘.error‘),
                type = my.data(‘type‘),
                pattern=/^[A-Za-z]+/,//匹配到第一个字符串返回数组
                zm = type.match(pattern),//获取到第一个字母
                index1 = type.match(eval("/"+zm+"/")),//字母的index
                index2 = type.match(/(\-)/),//中划线的index
                num1 = type.substring(index1.index+1,index2.index),
                num2 = type.substring(index2.index+1),
                str = ‘/^\\‘+ zm  +‘{‘+ num1 +‘,‘+ num2 +‘}$/‘;

            //执行验证
            my.on({
                focus : function () {
                    error.text(‘‘);
                },
                blur : function () {
                    var val = my.val(),
                        flag = val.match(eval(str));

                    if (!flag) {
                        var errorVal = my.data(‘error‘);
                        // alert(0);
                        error.text(errorVal);
                    }
                }
            });
        });
    }
});

js实现:'w5-8' -> /^\w{5,8}$/

时间: 2024-10-18 14:53:38

js实现:'w5-8' -> /^\w{5,8}$/的相关文章

js 正则表达式 转至(七郎&#39;s Blog)

//匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线 var re =new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,19}$"); if(re.test(aaaa)){alert("格式正确");}else{alert("格式错误");} var s_currency = /^([1-9][\d]{0,7}|0)(\.[\d]{1,2})?$/; if(!s_currency.test($("#

利用简单的JS文件编写APP格式下的网页

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Tit

关于JS中数组splice,concat的用法和AngularJs中filter的补充知识

一 JS数组相关操作 1. splice函数,可做插入,删除,替换操作 1 <script> 2 "use strict" 3 var arr = ['z3']; 4 arr.splice(1,0,'l4'); 5 alert(arr); //z3,l4 6 arr.splice(1,1,'w5'); 7 alert(arr); //z3,w5 8 arr.splice(1,1); 9 alert(arr); //z3 10 arr.splice(10,1,'l4','w5

nodejs中间件xlsx.js导出excel文件使用方法封装(原创)

之前的项目一直使用的是nodejs的node-xlsx.js中间件,最近的项目部署时不能使用外网,而node-xlsx.js的路径太长不能U盘复制,现在改用xlsx.js中间件. 现在把自己封装的使用方法分享出来,和大家一起学习. 代码很简单,轻喷. /** * Created by Administrator on 2016/11/17. * 使用xlsx中间件,传入表头[数组],表内数据[对象数组],文件名[string] //var header=["姓名",'年龄','性别']

js制作简单的趋势图

一.加载js文件 1 ZC={AG:function(l,e){if(l.indexOf){return l.indexOf(e)}else{for(var h=0,a=l.length;h<a;h++){if(l[h]==e){return h}}return -1}},VERSION:"0.130812",CHARTS:["null","null3d","line","line3d","

【API】高德地图API JS实现获取坐标和回显点标记

1.搜索+选择+获取经纬度和详细地址 2.回显数据并点标记 3.实现 第一步:引入资源文件 <!--引入高德地图JSAPI --><script src="//webapi.amap.com/maps?v=1.3&key=在官网申请一个key"></script><!--引入UI组件库(1.0版本) --><script src="//webapi.amap.com/ui/1.0/main.js">

js跨域

第一次写博客,好紧张,不知道能写成啥样,哈哈哈. 自己的一知片解,有错请多多指教,嘻嘻嘻. 一.何为跨域? 只要协议.域名.端口后任何一个不同,就是跨域. 举个例子: http://www.example.com 协议不同 https://www.example.com http://www.example.com 域名不同 http://www.test.com http://www.example.com 端口不同 http://www.example.com:81 注意:ip相同,域名不同

Vue.js学习笔记:属性绑定 v-bind

v-bind  主要用于属性绑定,Vue官方提供了一个简写方式 :bind,例如: <!-- 完整语法 --> <a v-bind:href="url"></a> <!-- 缩写 --> <a :href="url"></a> 绑定HTML Class 一.对象语法: 我们可以给v-bind:class 一个对象,以动态地切换class.注意:v-bind:class指令可以与普通的class特

node.js的安装及配置

一.安装 直接在浏览器搜索node.js,在官网上下载(一般旧版的更加稳定,比如下载4.4.7版本) 点击DOWNLOADS 往下翻,点击Previous Release Windows下载msi(64位/32位) 根据提示一步步安装,安装之后的文件夹如下: 在cmd命令行下输入node -v,如果出现如下,说明安装成功: 二.关于配置 在安装路径下新建两个文件夹: 创建完两个空文件夹之后,打开cmd命令窗口,输入 npm config set prefix "D:\Program Files

Node.js 使用angularjs取得Nodejs http服务端返回的JSON数组示例

server.js代码: // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http"); // 创建服务器,创建HTTP服务器要调用http.createServer()函数,它只有一个参数,是个回调函数,服务器每次收到http请求后都会调用这个回调函数.服务器每收到一条http请求,都会用新的request和response对象触发请求函数. var server=http.createS