当前位置:千赢国际官网 > 千赢网页手机版登入 > 让你一见钟情的App快速开发平台,基于javascript简

让你一见钟情的App快速开发平台,基于javascript简

文章作者:千赢网页手机版登入 上传时间:2019-07-12

DeviceOne是目前唯一的一款产品实现了所有的UI都是纯原生的,DeviceOne这个模型中所有UI组件功能组件都已经被抽象成可被自由扩展的跨平台组件,就连Webkit本身在模型中也仅仅退化成一个普通的UI组件而已,App开发者可以自由选择js脚本、lua脚本甚至python脚本来编写业务逻辑,让昂贵的原生开发人员能够更专注于底层技术创新和组件封装,让应用开发人员可以更加专注于具体项目的业务需求,实现原生开发和应用开发的分离,也就是让逻辑和控制充分解耦。

AngularJS是开发基于浏览器的响应式RWD应用程序的一个前端MVC框架,由谷歌最初开发的 开源项目,干净的架构吸引了大量粉丝,适合建立CRUD类型的业务应用程序,并不适合开发游戏等应用, 使用声明性编程的用户界面和命令式编程的逻辑, 支持现代桌面和移动浏览器 Internet Explorer版本8.0及以上。

本文实例介绍了javascript简单实现对身份证的校验的关键性代码,分享给大家供大家参考,具体内容如下

接触 DeviceOne 要从15年11月开始说起了,因项目和产品时间需求接触了快速开发平台,DeviceOne是非常棒的一个平台,双向数据绑定,可以自定义指令,过滤器等等。总之非常好用完全超出了我们功能需求。之后我们使用了混合型开发平台,没有达到原生App的体验和流畅,在页面切换以及页面滚动的时候都非常卡顿,说实话真心的拿不出手的产品啊。

AngularJS是一款客户端MVC的javascript框架,而客户端MVC代表未来架构(为什么要使用MVC REST CQRS
架构),如果你有Struts或SpringMVC等后端MVC框架编程经验,学习Angular会很快,基本是按照同一个MVC思路实现的。

var vcity={ 11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古", 
21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏", 
33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南", 
42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆", 
51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃", 
63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外" 
}; 

checkCard = function(card) 
{ 

//是否为空 
if(card === '') 
{ 

return "请输入身份证号,身份证号不能为空"; 
} 
//校验长度,类型 
if(isCardNo(card) === false) 
{ 

return "您输入的身份证号码不正确,请重新输入"; 
} 
//检查省份 
if(checkProvince(card) === false) 
{ 
return "您输入的身份证号码不正确,请重新输入"; 
} 
//校验生日 
if(checkBirthday(card) === false) 
{ 
return "您输入的身份证号码生日不正确,请重新输入"; 
} 
//检验位的检测 
if(checkParity(card) === false) 
{ 
return "您的身份证校验位不正确,请重新输入"; 
} 

return "ok"; 
}; 


//检查号码是否符合规范,包括长度,类型 
isCardNo = function(card) 
{ 
//身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X 
var reg = /(^d{15}$)|(^d{17}(d|X)$)/; 
if(reg.test(card) === false) 
{ 
return false; 
} 

return true; 
}; 

//取身份证前两位,校验省份 
checkProvince = function(card) 
{ 
var province = card.substr(0,2); 
if(vcity[province] == undefined) 
{ 
return false; 
} 
return true; 
}; 

//检查生日是否正确 
checkBirthday = function(card) 
{ 
var len = card.length; 
//身份证15位时,次序为省(3位)市(3位)年(2位)月(2位)日(2位)校验位(3位),皆为数字 
if(len == '15') 
{ 
var re_fifteen = /^(d{6})(d{2})(d{2})(d{2})(d{3})$/; 
var arr_data = card.match(re_fifteen); 
var year = arr_data[2]; 
var month = arr_data[3]; 
var day = arr_data[4]; 
var birthday = new Date('19' year '/' month '/' day); 
return verifyBirthday('19' year,month,day,birthday); 
} 
//身份证18位时,次序为省(3位)市(3位)年(4位)月(2位)日(2位)校验位(4位),校验位末尾可能为X 
if(len == '18') 
{ 
var re_eighteen = /^(d{6})(d{4})(d{2})(d{2})(d{3})([0-9]|X)$/; 
var arr_data = card.match(re_eighteen); 
var year = arr_data[2]; 
var month = arr_data[3]; 
var day = arr_data[4]; 
var birthday = new Date(year '/' month '/' day); 
return verifyBirthday(year,month,day,birthday); 
} 
return false; 
}; 

//校验日期 
verifyBirthday = function(year,month,day,birthday) 
{ 
var now = new Date(); 
var now_year = now.getFullYear(); 
//年月日是否合理 
if(birthday.getFullYear() == year && (birthday.getMonth()   1) == month && birthday.getDate() == day) 
{ 
//判断年份的范围(3岁到100岁之间) 
var time = now_year - year; 
if(time >= 3 && time <= 100) 
{ 
return true; 
} 
return false; 
} 
return false; 
}; 

//校验位的检测 
checkParity = function(card) 
{ 
//15位转18位 
card = changeFivteenToEighteen(card); 
var len = card.length; 
if(len == '18') 
{ 
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 
var cardTemp = 0, i, valnum; 
for(i = 0; i < 17; i   ) 
{ 
cardTemp  = card.substr(i, 1) * arrInt[i]; 
} 
valnum = arrCh[cardTemp % 11]; 
if (valnum == card.substr(17, 1)) 
{ 
return true; 
} 
return false; 
} 
return false; 
}; 

//15位转18位身份证号 
changeFivteenToEighteen = function(card) 
{ 
if(card.length == '15') 
{ 
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 
var cardTemp = 0, i; 
card = card.substr(0, 6)   '19'   card.substr(6, card.length - 6); 
for(i = 0; i < 17; i   ) 
{ 
cardTemp  = card.substr(i, 1) * arrInt[i]; 
} 
card  = arrCh[cardTemp % 11]; 
return card; 
} 
return card; 
};

我们老大最后还是很厉害的果断的选择了 DeviceOne这个平台,当时我很不情愿毕竟这个项目我都写了70%了DeviceOne我却一点都没有接触过。不过当我看到用DeviceOne写的案例时真的是一见钟情啊,有种相见恨晚的感觉。真的是超级流畅超级好用的一个平台。再次特别的要感谢我们老大的悉心指导。

1 AngularJS

以上就是本文的全部内容,希望对大家实现javascript身份证校验有所帮助。

接下来让我们认识一下DeviceOne为原生和性能而生移动App开发平台吧。

AngularJS 除了内置的指令外,我们还可以创建自定义指令。你可以使用 .directive 函数来添加自定义的指令。要调用自定义指令,HTMl 元素上需要添加自定义指令名。使用驼峰法来命名一个指令, runoobDirective , 但在使用它时需要以 - 分割, runoob-directive :

您可能感兴趣的文章:

  • vbscript和javascript版的15位, 18位的身份证号码的验证函数.以及根据身份证取省份,生日,性别
  • JS支持带x身份证号码验证函数
  • js判断输入是否中文,数字,身份证等等js函数集合
  • js简单实现根据身份证号码识别性别年龄生日
  • js实现身份证号码验证的简单实例
  • js身份证判断方法支持15位和18位
  • js 验证身份证信息有效性
  • js实现二代身份证号码验证详解
  • javascript验证身份证号
  • 如何用javascript正则表达式验证身份证号码是否合法

DeviceOne简介:

<body ng-app="myApp">
<runoob-directive></runoob-directive>
<script>
var app = angular.module("myApp", []);
app.directive("runoobDirective", function() {
return {
template : "<h>自定义指令!</h>"
};
});
</script>
</body>

DeviceOne是一个非常先进的App开发平台,使用Javascript 构建原生体验的移动应用程序。DeviceOne主要关注外观和体验,以及和你的应用程序的 UI 交互。

AngularJS还可以定义过滤器,如下所示:

DeviceOne是一个具有速度快,界面现代化、美观等特点。

<div ng-app="myApp" ng-controller="costCtrl">
<input type="number" ng-model="quantity">
<input type="number" ng-model="price">
<p>总价 = {{ (quantity * price) | currency }}</p>
</div>

利用你喜欢的(html、js) web技术创建跨平台的移动app

AngularJS 有自己的HTML事件处理方式:

DeviceOne是目前最有潜力的一款手机应用开发平台。通过 PASS 构建应用程序,它提供了很多 UI 组件来帮助开发者开发强大的应用。 它使用 JavaScript MVVM 框架来增强应用。提供数据的双向绑定,使用它成为 Web 和移动开发者的共同选择。DeviceOne是一个专注于用WEB开发技术,开发手机平台原生应用的一个开发框架。

<div ng-app="myApp" ng-controller="personCtrl">
<button ng-click="toggle()">>隐藏/显示</button>
<p ng-hide="myVar">
名: <input type="text" ng-model="firstName"><br>
姓名: <input type="text" ng-model="lastName"><br>
<br>
Full Name: {{firstName   " "   lastName}}
</p>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('personCtrl', function($scope) {
$scope.firstName = "John",
$scope.lastName = "Doe"
$scope.myVar = false;
$scope.toggle = function() {
$scope.myVar = !$scope.myVar;
};
});
</script>

主要特点:

另外AngularJS 的首选样式表是 Twitter Bootstrap, Twitter Bootstrap 是目前最受欢迎的前端框架。

本文由千赢国际官网发布于千赢网页手机版登入,转载请注明出处:让你一见钟情的App快速开发平台,基于javascript简

关键词: 千赢国际官网