技术文章

身份证号合法性验证

泪湿孤枕 提交于 2021-02-17 14:16:45
//是否满18岁 function in18(birthYear,birthMonth,birthDay) { var now = new Date(); var year = now.getFullYear(); var month = now.getMonth() +1; var day = now.getDate(); var age = year - birthYear; var count = 0; if(age<18){ count ++ ; }; if(age == 18){ if(birthMonth > month){ count ++ ; }else if(birthMonth == month){ if(birthDay > day){ count ++ ; } }; }; return count; } 细校验(带平年、闰年、31天的月份、2月的天数,以及1920以后的人等的) /^[1-9]\d{5}((((19|[2-9][0-9])\d{2})(0?[13578]|1[02])(0?[1-9]|[12][0-9]|3[01]))|(((19|[2-9][0-9])\d{2})(0?[13456789]|1[012])(0?[1-9]|[12][0-9]|30))|(((19|[2-9][0-9])\d{2})0?2(0?[1-9]|1[0-9]|2[0

.NET Core应用的三种部署方式

我只是一个虾纸丫 提交于 2021-02-17 13:57:56
.NET Core应用提供了三种部署方式: FDD FDD:Framework-dependent deployment,框架依赖部署。这种方式针对某个 特定版本的.NET Core 进行发布,只打包应用本身及.NET Core类库之外的第三方依赖项,需要目标系统上已安装相应的.NET Core运行时。使用 dotnet publish 命令时,FDD是.NET Core 2.x的默认发布方式。 除非特殊说明,FDD会使用目标系统上指定.NET Core版本的最新可用.NET Core runtime。 FDE FDE:Framework-dependent executables,框架依赖可执行程序。这种方式针对某个 特定版本的.NET Core及特定平台 进行发布,只打包应用本身及.NET Core类库之外的第三方依赖项,需要目标系统上已安装相应的.NET Core运行时。FED适用于.NET Core 2.2及以上版本,是.NET Core 3.x的默认发布方式。使用 dotnet publish 命令(除.NET Core 3.x之外)以PDE模式发布应用,需指定下面两个参数: -r <RID> 该参数使用 RID 用于指定目标平台 --self-contained false 该参数值为false时,.NET Core SDK会以FDE模式打包应用 SCD SCD

MySQL多版本的时间类型问题

那年仲夏 提交于 2021-02-17 13:57:16
这是学习笔记的第 1758 篇文章 今天在处理一个业务的时候,碰到开发同学提交的一个需求。他在线上环境(MySQL5.5)中提交了一条SQL,期望创建几张表,但是抛出了错误。 其中一张表的建表SQL类似于: create table test( xxxxx, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', ); 根据MySQL 5.5的特性,datetime还支持不了动态默认值。 所以他们斟酌再三,决定改写为timestamp类型。 我看到另外一张表的建表SQL: create table test2( xxxxx, `create_time` timestamp DEFAULT NULL COMMENT '创建时间', xxxx ); 显然在MySQL 5.5里面,timestamp类型是不支持default null的这种方式的。 在这一点上不存在额外的特性,就是timestamp的一个限制,在5.5,5.7都不支持default null。 哪怕我们改下需求,支持基于timestamp类型的动态默认值,下面的SQL也会抛出问题。 CREATE TABLE `qc_apeal` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT

每天一个Linux命令之find命令

南笙酒味 提交于 2021-02-17 13:57:00
命令介绍 find命令是一个系统文件查找命令。说直白一点就是你想找什么文件,不需要一个目录一个目录去查找,直接使用这个命令,会根据你执行这个命令的参数,列举出符合你需要的文件。 命令格式 find pathname option [-print -exec -ok ...] 命令格式解析 pathname:查找的文件路径。 -print:find命令将匹配的文件输出到标准输出。 -exec:find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {} \;,注意{ }和\;之间的空格。 -ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 常用的参数 -name 按照文件名查找文件。 -perm 按照文件权限来查找文件。 -prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。 -user 按照文件属主来查找文件。 -group 按照文件所属的组来查找文件。 -mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m

都快0202年了,还不会Linux 基础命令?

╄→гoц情女王★ 提交于 2021-02-17 13:56:41
前言 程序员: “我要跑路了,告诉我命令行是 rm -rf /* 的那个人你小心点。 ” “ rm -rf ” 引发的血案都在菜鸟程序员中经常出现,初初入行的前后端们基础不扎实。 容易出现没有图形用户界面 ( GUI )就无从下手,连部署应用都不会的尴尬局面。 窃以为,熟悉掌握 Linux 下的 Vim 和常用的命令是每个程序员的必修课。 而且,连微软都拥抱 Linux terminal ,推出了 Windows Terminal 。你还有 什么理由不学? 1. grep :查找文件中的关键字 $ grep "string" [选项] file 使用 grep 命令查找文件中的所有 React 关键字: -i 选项可以在文件中不区分大小写地搜索字符串。它匹配" REACT "," REact "和" react "等词。 $ grep -i "REact" file -c (count) 选项,可以找到给定字符串/模式匹配的行数 $ grep -c "react" index.js 更多的选项可以查看下图: 2. ls :列出当前路径中的文件和目录。 $ ls ls 列出当前路径中的文件和目录。 如果为文件夹,则显示成蓝色。 如果为文件,则显示成灰色 3. pwd : 显示工作目录 $ pwd 4. cat :查看文件的内容 $ cat somefile.js cat

mac统计项目代码行数

淺唱寂寞╮ 提交于 2021-02-17 13:56:09
一、安装cloc brew install cloc 二、统计 商城代码行数 $ cd /Users/shijun/Desktop/ideaWorkspace/Www $ cloc ./ 1051 text files. 1010 unique files. 200 files ignored. github.com/AlDanial/cloc v 1.76 T=2.80 s (305.7 files/s, 82338.1 lines/s) ----------------------------------------------------------------------------------- Language files blank comment code ----------------------------------------------------------------------------------- JavaScript 125 12953 21263 73746 Java 374 4737 1945 32908 CSS 46 1019 875 23788 HTML 35 181 2847 19287 JSP 81 1568 1050 15119 XML 158 449 354 5976 PHP 28 1033 2402 5190 ASP 5

Python爬虫教程:爬取网站妹子图【附源码】

旧时模样 提交于 2021-02-17 13:55:43
爬取图片是最常见的爬虫入门项目,不复杂却能很好地熟悉Python语法、掌握爬虫思路。当然有两个点要注意:一、不要侵犯版权,二、要注意营养。 ♦思路流程 第一步:获取网址的response,分页内容,解析后提取图集的地址。 第二步:获取网址的response,图集分页,解析后提取图片的下载地址。 第三步:下载图片(也就是获取二进制内容,然后在本地复刻一份)。 ♦代码 import requests from bs4 import BeautifulSoup import os import urllib import random class mzitu () : def all_url (self, url) : html = self.request(url) all_a = BeautifulSoup(html.text, 'lxml' ).find( 'div' , class_= 'all' ).find_all( 'a' ) for a in all_a: title = a.get_text() print( u'开始保存:' , title) path = str(title).replace( "?" , '_' ) if not self.mkdir(path): ##跳过已存在的文件夹 print( u'已经跳过:' , title) continue href

【Java】基础34:线程之间的合作?

戏子无情 提交于 2021-02-17 13:55:19
今天是我自学Java的第34天。 感谢你的观看,谢谢你。 话不多说,开始今天的学习:。 首先回顾下线程同步: 线程同步其实讲的就是线程之间的竞争 。 通俗一点说就是: 对于同一个任务,因为Java虚拟机的抢占式调度,线程一、线程二都抢着做,线程一还没做完,线程二就跑进来横插一脚,说白了不就好比两个人在互相竞争么? 对于这种情况,我们采用了同步机制来解决,让它们一次只能执行一个线程:线程一执行完,线程二才能进去。 那么现在问题来了: 线程之间既然有竞争,那有没有合作呢? 答案是有的,有竞争自然也会有合作。 用一个案例来说明: 刘小爱是个吃货,要去包子铺吃包子。 现有一个设定:刘小爱1次只能吃1个包子,包子铺1次只能生产1个包子,一有包子刘小爱就吃,吃完后,包子铺就开始生产,包子一生产出来,刘小爱就继续吃…… 先不管符不符合现实逻辑哈,反正设定是这样的。 面对这个问题,该怎么办? 刘小爱是一个线程,包子铺也是一个线程,它们会操作同一个对象,也就是包子。 一、包子类 创建一个包子类,代码如下: ①包子类里面有一个属性叫isHave。 isHave用于判断是否有包子:如果为true,表示有包子;如果为false,表示没有包子。 ②get/set方法用于获取和修改isHave属性。 其中默认有一个无参构造方法,可以省略不写。 二、刘小爱 创建一个刘小爱类