- CoreText 图文混排第一篇
coder_feng
最近重温YYKit框架的时候,发现布局那里面的代码使用了大量的CoreText,这点是以前没有留意到的,看到我一脸懵逼,为了看懂里面的布局代码,只能先从简单的CoreText基础开始搞起CoreText的介绍CoreText是基于iOS3.2+和OSX10.5+的一种能够对文本格式和文本布局进行精细控制的文本引擎,它良好的结合了UIKit和CoreGraphics/QuartzUIKit的UILa
- iOSAPP开发FPS的测试技巧
MeteoriteMan
iOS测试小技巧ios测试
我们知道iOS设备的刷新率基本都是60FPS(PS:去年出的ipadpro刷新率是120).所以iOS的APP用起来一般都不会感觉到卡顿的情况.除非你UI的某些地方写的有问题导致严重掉帧.但是,我们如何来看FPS的数值呢.在安卓里面我们可以去系统的设置那里去调.可以看渲染效率什么的.但是在iOS中却没有这种功能.我们可能都用过一个叫YYKit的库(富文本的YYText.json模型互相转换的YYm
- iOS google地图截屏
酒深巷子Ya
最近在项目中处理即时通信发送定位信息时用到地图截屏的功能,本以为是件很简单的事,结果还是踩了一些坑,Mark一下:由于地图的的一些处理,截屏不可以使用YYKit里面的snapshotImage方法。比较好的是高德地图API里面提供了对应的方法:-(UIImage*)takeSnapshotInRect:(CGRect)rect;截取指定区域。(使用第三方框架时,一定给所有的方法大致浏览一遍,少走很
- 学习笔记二
玉思盈蝶
学习笔记二1.cocopods忽略引入库的所有警告:在Podfile文件加上以下即可。#忽略引入库的所有警告inhibit_all_warnings!2.第三方库:#分页pod'DNSPageView','~>1.0.1'#跑马灯pod'JXMarqueeView'#消息提示pod'SwiftMessages','~>4.1.4'#pod'YYKit'#播放网络音频pod'StreamingKit
- iOS知识点总结(5)- 设计一个App
飞哥漂流记
首先,App搭建要遵循的架构原则:易读性、易维护性、易扩展性。其次根据产品需求和设计图,脑中先建立一个产品架构,不同类型的产品,技术选型也有所不同,通常我会选择一些当下比较热门、好用的第三方框架。例如:YYKit常见的分层架构:视图层、业务层、网络层、数据层。好架构的前提:有严格的代码规范,结构目录清晰,功能模块分类明确注释统一明确,有一致规范避免复杂的依赖关系,确保代码的高封装性和高复用性,减少
- M2 Mac Xcode编译报错 ‘***.framework/‘ for architecture arm64
feiyue0823
iOSxcode
In/Users/fly/Project/Pods/YYKit/Vendor/WebP.framework/WebP(anim_decode.o),buildingforiOSSimulator,butlinkinginobjectfilebuiltforiOS,file'/Users/fly/Project/Pods/YYKit/Vendor/WebP.framework/WebP'forarc
- 手动添加yykit---添加编译参数
__拼搏__
导入过程如下。但是大佬这么一句话让人有些懵逼为NSObject+YYAddForARC.m和NSThread+YYAdd.m添加编译参数-fno-objc-arc。做法如下:
- iOS 常用第三方依赖库
青子衿S
第三方依赖pod'AFNetworking','~>3.0'//网络请求pod'SDWebImage','~>5.0'//图片缓存pod'IQKeyboardManager'//键盘pod'FMDB','~>2.7'//数据库pod'LYEmptyView','~>1.3.1'//空内容界面占位视图pod'YYKit','~>1.0.9'//组件pod'HJViewStyle','~>1.2.8'
- RunTime之消息转发之NSTimer循环引用的解决方案
攻城狮GG
消息转发通常用于解耦,在此有个实际例子就是打破NSTimer的引用循环,YYKit框架中有一个YYWeakProxy类,就是用来处理引用循环的,YYWeakProxy类继承于NSProxy,自己可以模仿YYWeakProxy写一个WeakProxy类继承自NSProxy代码如下@property(nonatomic,weak,readonly)idweakTarget;+(instancetype
- YYModel 2019-06-24
雪里的懒猪
前言同项目中同事使用YYModel,比原生的要简单高效许多!!!YYModel是YYKit的高效组件之一,在实际场景中的非常实用,运用于项目中使用MVC或MVVM架构时,使用model做数据处理。自动转换模型数据自动检测数据安全性,避免carch无需继承其他类,使用方便适用model各种数据加载运用场景在使用之前先展示一些YYModel比较常用的方法,后面会具体介绍用法//字典转模型(nullab
- 2018-04-09 YYKit - 空字符串的处理
破夕_____________
上一篇我们分析了NSString分类NSString+YYAdd的NSNumberCompatible部分,这一篇我们就看一下Utilities部分。5.-(NSString*)stringByTrim;该方法的作用就是修剪头部和尾部的空白字符(空格和换行符)。示例调用下面看一个示例。NSString*str=@"aaaa";NSLog(@"str=%@,length=%ld",str,str.l
- GCD 捕获 self 是否会造成内存泄漏?
developer_cp3
关于GCD的block捕获self是否造成循环引用的问题,网上是争论不休,在iOS的面试中更是频繁出现。我们从YYKit里面的一个Issue出发,来探索一下GCD跟self之间是否会造成循环引用的问题。该Issue起源于YYKit中的一段代码:-(void)_trimInBackground{__weaktypeof(self)_self=self;dispatch_async(_queue,^{
- YYKit源码分析(2)——YYAsyncLayer异步绘制
无悔zero
YYAsyncLayer主要作用是异步绘图,可以提高性能,平常应用时,比如像微信朋友圈的列表内容就可以用这个框架实现。先看个例子:YYTextShadow*shadow=[YYTextShadownew];//阴影shadow.offset=CGSizeMake(0,1);shadow.color=[UIColorblackColor];shadow.radius=5;NSMutableAttri
- 转:YYModel 的使用场景和详解
小小小Lucky
YYModel的使用场景和详解凉秋落尘关注2.32018.07.1716:09*字数1054阅读12818评论5喜欢32前言YYModel是YYKit的高效组件之一,在实际场景中的非常实用,运用于项目中使用MVC或MVVM架构时,使用model做数据处理。自动转换模型数据自动检测数据安全性,避免carch无需继承其他类,使用方便适用model各种数据加载运用场景在使用之前先展示一些YYModel比
- 用心阅读 YYCache 并改装
孙优秀丶Unique
用心阅读YYCache并改装架构YYKIT分为内存缓存和磁盘缓存,磁盘缓存又分为文件缓存和数据库缓存,作者认为,大于20K应该使用文件缓存,否则sqlite缓存YYMemoryCacheYYMemoryCache是内存缓存,速度最快,使用的是LRU思想和双向链表数据结构来实现的LRU淘汰算法是淘汰最近最少使用的数据,那么利用双向链表完全可以实现,当有新数据插入的时候,就把新数据插入到链表的头部,当
- 2018我的学习计划
青宜结鬼章
在外包公司做了这么久的开发,感觉自己还是个初中级开发者,这跟我之前没有学习有直接原因,在外包公司混日子混久了,现在,该静下来好好学习了。现在已经五月十号了。1.在五月之内,研究透彻YYKit的源码,之后就是SDWebImage,AFNetworking。2,之前一直没有好好研究过大牛的源码,也不知道具体需要花费的时间,学完源码之后,补一下WWDC的视频,肯定会有收获。3,看一些有用的进阶书籍。4.
- 安全键盘、类名混淆、YYKit
spades_K
1.安全键盘方案why?大部分中文应用弹出的默认键盘是简体中文输入法键盘,在输入用户名和密码的时候,如果使用简体中文输入法键盘,输入英文字符和数字字符的用户名和密码时,会自动启动系统输入法自动更正提示,然后用户的输入记录会被缓存下来。系统键盘缓存最方便拿到的就是利用系统输入法自动更正的字符串输入记录。缓存文件的地址是:/private/var/mobile/Library/Keyboard/dyn
- iMessage 开发要点 坑点记录
smallcatlei
iosswift
pod添加iMessage后,建议podfile要这样:platform:ios,'14.0'defcommonPod//这里写一些主应用和iMessage都要依赖的库pod"YYKit",'~>1.0.9'endtarget'MainApp'doframeworksuse_frameworks!inhibit_all_warnings!#多Target都有的podcommonPodendtarg
- Xcode12 模拟运行提示" XXXbuilding for iOS Simulator, but linking in object file built for iOS, for arch...
风野十郎
项目在Xcode11上运行没有任何问题,真机模拟器跑起来电脑飕飕的响,后面升级Xcode12一直真机在测试,某天突然脑子灵光一闪,想看看Xcode12模拟器是不是也华丽升级了,结果模拟器编译一直报错,提示如下:···ld:in/Users/****/Documents/projectGit/PetrifactionCollection/CollectionProject/Pods/YYKit/Ve
- swift 实现一段文字 右下角最后一行提前开始省略
smallcatlei
swiftios开发语言
需要cocopods引入YYKitpod"YYKit"代码中实现这个类,主要是靠YYKit获取每行有什么文案,然后拆成两个UILabel实现。importUIKitimportYYKit//最后一行文案留一段距离提前开始省略的文案view.//定宽高度自适应,需要指定最大行数和最后一行要预留提前省略的距离classRightBottomSpaceLabelView:UIView{privateva
- iOS开发:三方源码解读
__Null
一、YYMemoryCache的源码解读YYKit项目YYMemoryCache是用来做内存管理的类,他支持设置缓存对象的个数、最大占用内存大小、时间等限制来达到较好的存储状态,他内部支持通过LRU淘汰策略来清理低频使用的数据。1.YYMemoryCache分为两个主体部分:YYMemoryCache类//通过key来查询一个对象-(nullableid)objectForKey:(id)key;
- iOS 如何保持界面流畅
Owen_sun
这篇文章会非常详细的分析iOS界面构建中的各种性能问题以及对应的解决思路,同时给出一个开源的微博列表实现,通过实际的代码展示如何构建流畅的交互。在开始技术讨论前,可以先下载Demo跑到真机上体验一下:ibireme/YYKit。Demo里包含一个微博的Feed列表、发布视图,还包含一个Twitter的Feed列表。为了公平起见,所有界面和交互我都从官方应用原封不动的抄了过来,数据也都是从官方应用抓
- iOS实现创建一个全局长驻队列池
浅月堂前
YYKit真是一个非常优秀的框架!最近看YYLabel源码,看到其中一段代码非常有意思,作者在要displaylayer的守候获取一个串行队列,把绘制任务放入其中完成异步绘制。好的代码自己也临摹了一下,以做纪念。1、创建两个内联函数用于返回不同优先级的状态以及一个结构体用于存储不同优先级下的队列池,以及相关信息//也就是说建议编译器将指定的函数体插入并取代每一处调用该函数的地方(上下文),从而节省
- YYKit组件学习- YYWebImage
AKyS佐毅
YYWebImage调用方法:UIImageView*imageView=[[UIImageViewalloc]initWithFrame:CGRectMake(0,hotelRatingView.frame.origin.y+hotelRatingView.frame.size.height+10,200,100)];[self.viewaddSubview:imageView];NSURL*u
- M1芯片报错:building for iOS Simulator, but linking in object file built for iOS, for architecture arm64
酷拼车
Xcode-报错问题总结大全M1芯片报错YYKit报错:ld:in/Users/xxx/Desktop/xxx/Pods/YYKit/Vendor/WebP.framework/WebP(libwebpencode_la-config.o),buildingforiOSSimulator,butlinkinginobjectfilebuiltforiOS,forarchitecturearm64解
- SDwebImage YYImage lottie 加载gif 动画,性能比较,gif加载框架选型分析
开了那么
最近项目改版,要加载好几个gif的动画,刚开始尝试使用了SDwebImage来加载显示,可以正常显示,但加载多个gif的时候会被闪退,查找原因是内存爆增引起的。后来有尝试使用YYkit框架,来加载gif动画,YYKit加载gif的时候不会引起内存问题,但是CPU的使用率会很高,最后我使用的是lottie动画,加载会比较友善,不会存在内存和CPU的问题,接下来我们依次来分析一下相关的代码1、SDwe
- xcworkspace结合cocoapods的应用说明
风·之痕
Objective-C工作日常xcworkspacecocoapodprojectframework
一、主工程Project1)创建AppProject2)添加CocoaPods的Podfile文件source'https://github.com/CocoaPods/Specs.git'platform:ios,'10.0'workspace'WorkSpaceDemo'defcommonPodspod'AFNetworking','~>4.0.1'pod'YYKit','~>1.0.9'po
- Xcdoe 新建项目所需 - OC
没毛毛的大腿
以下为我个人常用搭建项目三方,小菜鸟一枚,有问题请斧正,不喜勿喷,谢谢各位大佬网络篇:AFNetworking刷新:MJRefresh工具类:YYKit图片:SDWebImage输入框管理:IQKeyboardManager提示语:ToastSVProgressHUDMBProgressHUD数据处理:MJExtension定时器:LSTTimer苹果内购:IAPHelper小红点提示:JSBad
- iOS UI 优化 - 总纲
JackJin
iOSUI优化博文大纲2019年开年第一篇博文,今天先起个头。今年第一个主题是关于UI界面实现原理,UI目前实现主要方式在其实现上相关缺陷。开始从CoreAnimation框架总结以及实现方式上讲解,然后从CoreGraphics和CoreIamge在绘制层面三者如何把UIKit控件如何实现绘制交由OpenGLES|Metal来实现每一帧绘制。最后分析FB开源的框架ASDK和YYKit实现UI优化
- YYKit-YYCache源码分析
狗不理火锅
YYKit-YYCache源码分析YYCache是一个高性能iOS缓存框架,是YYKit组件之一。框架架构YYCache:该框架最外层接口,内部使用YYMemeoryCache和YYDiskCache进行内存缓存和磁盘缓存YYMemoryCache:内存缓存,使用双向链表的LRU算法的缓存机制YYDiskCache:磁盘缓存,使用文件存储和SQLite数据库存储,支持异步操作YYKVOStorag
- java数字签名三种方式
知了ing
javajdk
以下3钟数字签名都是基于jdk7的
1,RSA
String password="test";
// 1.初始化密钥
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(51
- Hibernate学习笔记
caoyong
Hibernate
1>、Hibernate是数据访问层框架,是一个ORM(Object Relation Mapping)框架,作者为:Gavin King
2>、搭建Hibernate的开发环境
a>、添加jar包:
aa>、hibernatte开发包中/lib/required/所
- 设计模式之装饰器模式Decorator(结构型)
漂泊一剑客
Decorator
1. 概述
若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许会仅仅继承这个类来产生一个新类—这建立在额外的代码上。
- 读取磁盘文件txt,并输入String
一炮送你回车库
String
public static void main(String[] args) throws IOException {
String fileContent = readFileContent("d:/aaa.txt");
System.out.println(fileContent);
- js三级联动下拉框
3213213333332132
三级联动
//三级联动
省/直辖市<select id="province"></select>
市/省直辖<select id="city"></select>
县/区 <select id="area"></select>
- erlang之parse_transform编译选项的应用
616050468
parse_transform游戏服务器属性同步abstract_code
最近使用erlang重构了游戏服务器的所有代码,之前看过C++/lua写的服务器引擎代码,引擎实现了玩家属性自动同步给前端和增量更新玩家数据到数据库的功能,这也是现在很多游戏服务器的优化方向,在引擎层面去解决数据同步和数据持久化,数据发生变化了业务层不需要关心怎么去同步给前端。由于游戏过程中玩家每个业务中玩家数据更改的量其实是很少
- JAVA JSON的解析
darkranger
java
// {
// “Total”:“条数”,
// Code: 1,
//
// “PaymentItems”:[
// {
// “PaymentItemID”:”支款单ID”,
// “PaymentCode”:”支款单编号”,
// “PaymentTime”:”支款日期”,
// ”ContractNo”:”合同号”,
//
- POJ-1273-Drainage Ditches
aijuans
ACM_POJ
POJ-1273-Drainage Ditches
http://poj.org/problem?id=1273
基本的最大流,按LRJ的白书写的
#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
#define INF 0x7fffffff
int ma
- 工作流Activiti5表的命名及含义
atongyeye
工作流Activiti
activiti5 - http://activiti.org/designer/update在线插件安装
activiti5一共23张表
Activiti的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
A
- android的广播机制和广播的简单使用
百合不是茶
android广播机制广播的注册
Android广播机制简介 在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理。另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应
- Spring事务传播行为详解
bijian1013
javaspring事务传播行为
在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。
Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这
- eidtplus operate
征客丶
eidtplus
开启列模式: Alt+C 鼠标选择 OR Alt+鼠标左键拖动
列模式替换或复制内容(多行):
右键-->格式-->填充所选内容-->选择相应操作
OR
Ctrl+Shift+V(复制多行数据,必须行数一致)
-------------------------------------------------------
- 【Kafka一】Kafka入门
bit1129
kafka
这篇文章来自Spark集成Kafka(http://bit1129.iteye.com/blog/2174765),这里把它单独取出来,作为Kafka的入门吧
下载Kafka
http://mirror.bit.edu.cn/apache/kafka/0.8.1.1/kafka_2.10-0.8.1.1.tgz
2.10表示Scala的版本,而0.8.1.1表示Kafka
- Spring 事务实现机制
BlueSkator
spring代理事务
Spring是以代理的方式实现对事务的管理。我们在Action中所使用的Service对象,其实是代理对象的实例,并不是我们所写的Service对象实例。既然是两个不同的对象,那为什么我们在Action中可以象使用Service对象一样的使用代理对象呢?为了说明问题,假设有个Service类叫AService,它的Spring事务代理类为AProxyService,AService实现了一个接口
- bootstrap源码学习与示例:bootstrap-dropdown(转帖)
BreakingBad
bootstrapdropdown
bootstrap-dropdown组件是个烂东西,我读后的整体感觉。
一个下拉开菜单的设计:
<ul class="nav pull-right">
<li id="fat-menu" class="dropdown">
- 读《研磨设计模式》-代码笔记-中介者模式-Mediator
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
* 中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。
* 中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
*
* 在我看来,Mediator模式是把多个对象(
- 常用代码记录
chenjunt3
UIExcelJ#
1、单据设置某行或某字段不能修改
//i是行号,"cash"是字段名称
getBillCardPanelWrapper().getBillCardPanel().getBillModel().setCellEditable(i, "cash", false);
//取得单据表体所有项用以上语句做循环就能设置整行了
getBillC
- 搜索引擎与工作流引擎
comsci
算法工作搜索引擎网络应用
最近在公司做和搜索有关的工作,(只是简单的应用开源工具集成到自己的产品中)工作流系统的进一步设计暂时放在一边了,偶然看到谷歌的研究员吴军写的数学之美系列中的搜索引擎与图论这篇文章中的介绍,我发现这样一个关系(仅仅是猜想)
-----搜索引擎和流程引擎的基础--都是图论,至少像在我在JWFD中引擎算法中用到的是自定义的广度优先
- oracle Health Monitor
daizj
oracleHealth Monitor
About Health Monitor
Beginning with Release 11g, Oracle Database includes a framework called Health Monitor for running diagnostic checks on the database.
About Health Monitor Checks
Health M
- JSON字符串转换为对象
dieslrae
javajson
作为前言,首先是要吐槽一下公司的脑残编译部署方式,web和core分开部署本来没什么问题,但是这丫居然不把json的包作为基础包而作为web的包,导致了core端不能使用,而且我们的core是可以当web来用的(不要在意这些细节),所以在core中处理json串就是个问题.没办法,跟编译那帮人也扯不清楚,只有自己写json的解析了.
- C语言学习八结构体,综合应用,学生管理系统
dcj3sjt126com
C语言
实现功能的代码:
# include <stdio.h>
# include <malloc.h>
struct Student
{
int age;
float score;
char name[100];
};
int main(void)
{
int len;
struct Student * pArr;
int i,
- vagrant学习笔记
dcj3sjt126com
vagrant
想了解多主机是如何定义和使用的, 所以又学习了一遍vagrant
1. vagrant virtualbox 下载安装
https://www.vagrantup.com/downloads.html
https://www.virtualbox.org/wiki/Downloads
查看安装在命令行输入vagrant
2.
- 14.性能优化-优化-软件配置优化
frank1234
软件配置性能优化
1.Tomcat线程池
修改tomcat的server.xml文件:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="1200" m
- 一个不错的shell 脚本教程 入门级
HarborChung
linuxshell
一个不错的shell 脚本教程 入门级
建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。 如同其他语言一样
- Spring4新特性——核心容器的其他改进
jinnianshilongnian
spring动态代理spring4依赖注入
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
- Linux设置tomcat开机启动
liuxingguome
tomcatlinux开机自启动
执行命令sudo gedit /etc/init.d/tomcat6
然后把以下英文部分复制过去。(注意第一句#!/bin/sh如果不写,就不是一个shell文件。然后将对应的jdk和tomcat换成你自己的目录就行了。
#!/bin/bash
#
# /etc/rc.d/init.d/tomcat
# init script for tomcat precesses
- 第13章 Ajax进阶(下)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Troubleshooting Crystal Reports off BW
blueoxygen
BO
http://wiki.sdn.sap.com/wiki/display/BOBJ/Troubleshooting+Crystal+Reports+off+BW#TroubleshootingCrystalReportsoffBW-TracingBOE
Quite useful, especially this part:
SAP BW connectivity
For t
- Java开发熟手该当心的11个错误
tomcat_oracle
javajvm多线程单元测试
#1、不在属性文件或XML文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在DEV环境中,还是UAT(用户验收
测试)环境中,都可以顺畅无阻地运行,但是一旦部署在PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因可能是JDBC驱动版本不同,也可能是#2中讨论的问题。如果线程数目 可以在属性文件中配置,那么使它成为
- 正则表达式大全
yang852220741
html编程正则表达式
今天向大家分享正则表达式大全,它可以大提高你的工作效率
正则表达式也可以被当作是一门语言,当你学习一门新的编程语言的时候,他们是一个小的子语言。初看时觉得它没有任何的意义,但是很多时候,你不得不阅读一些教程,或文章来理解这些简单的描述模式。
一、校验数字的表达式
数字:^[0-9]*$
n位的数字:^\d{n}$
至少n位的数字:^\d{n,}$
m-n位的数字:^\d{m,n}$