正则表达式
用途:匹配字符串,数据校验——安全性,采集
正则写法:(定界符//)
let re=new RegExp('\\d+','g'); //1、JS风格
let re=/\d+/g //2、perl风格,通常采用这一种
举例1search:
let str='dhbkjdhakjksd'; //在字符串中找到‘a’
alert(str.indexOf('a')); //1、使用indexOf, 弹出11,即‘a’在字符串第11位
let re=/a/;
alert(str.search(re)); //2、使用正则,也弹出11,不同点,search适用于正则,indexOf找字符串
举例2match:
举例3replace:
let str='ajlsdkfj klak sdkAjds djlA'; //把str中的a不论大小写都用*替换
alert(str.replace(/a/gi,'*'));
搭配正则使用:
1、search(找位置)【str.search()】
2、match(找匹配内容【str.match()】,一般搭配g使用,eg:let re=/\d/;只弹出匹配的一个数字;let re=/\d/g,找出全部的数字,但都是一个一个的;let re=/\d{5}/g;所有数字,5个5个出;let re=/\d+/g;+表示在符合匹配的条件下越长越好)
3、replace(替换)【str.replace()】
4、test(测试)【re.test()】(但是test默认只要字符串有一部分符合要求就可以,很bug,所以要搭配修饰符使用)(test的值是布尔值,true or false)
正则的优点:
选项(options)(可以混用,直接写一起):i(忽略大小写),g(全局匹配)
模式:贪婪模式(+)
元字符 [ ]
1./a[abc]q/ 可以匹配aaq,abq,acq,但是不能aaaq,aabq……
2.范围 /[a-z]/i 、/[0-9]/、 /[a-z0-9]/(元字符中不存在分隔符)
比如/[3-59]/是3-5或3-9,元字符也不存在两位数
3.排除 [^] : /[^a]/ 排除a
转义
\d [0-9]
\w [a-z0-9]
\s 空白字符
. 任意字符 (\ .就只代表.本身 比如检测jpg图片/.jpg$/)
\D [^0-9] 与上面完全相反
\W [^a-z0-9]
\S 非空白
量词:数量(不带量词默认只匹配一个)
{n} : /a{6}/ 、 /\d{11}/ n个
{n,m} : /\d{5,12}/ 最少n个,最多m个
{n,} : /\w{6,}/ 最少n个,最多不限
+ : {1,} +就等于{1,},最少1个最多不限
? : {0,1} ?等于{0,1},可以没有,最多1个
举例: a 任何字符5-18 z
/a.{5,18}z/
修饰符=>条件
^行首 ( ^只有在[]中[^],才是元字符的排除)
$行尾
比如检验qq号:只有数字,5-12位,首字母不能为0
re=/^[1-9]\d{4,11}$/
匹配网址:http:/或https:/
re=/^https?:\/\// (s? s可以有可以没有,http:/直接用/,程序会认为它是正则结束)
或||的优先级(太低),所以搭配()使用。
举例:检测jpg,png,gif图片: /.(jpg|png|gif)$/
检测0-9999
1位:0-9
2位:10-99
3位:100-999
4位:1000-9999
/\d|[1-9]\d|[1-9]\d\d|[1-9]\d\d\d/
化简:/\d|[1-9]\d{1,3}/
JSON
转化:json->字符串、字符串->json
举例1 json->字符串:JSON.stringify()
let json={a:12,b:5,c:'aaa'};
console.log(JSON.stringify(json)); //顺便给json标准化
举例2 字符串->json;JSON.parse()
let str='{"a":"12","b":"5","c":"aaa"}';
let json=JSON.parse(str); //JSON.parse对str的格式有要求,引号中带的json必须是标准形式
console.log(json);
node
1、node.js —服务器
2、node.js不会独立开发
用途:
1、中间层
安全性,性能,降低主服务器复杂度
2、小型服务
3、工具
node.js优势:
1、便于前端入手
2、性能高
3、利于和前端代码整合
node.js环境搭建【下载安装】cmd
npm-Node Package Manager
比较慢 换源【阿里云】
安装
npm install xxx //cnpm和npm用法基本相同,除极少数只能用npm
npm i xxx
删除
npm uninstall xxx
npm un xxx
怎么卸载低版本:在设置中应用和功能卸载
1、卸载node本身,node目录
2、手动删除c:\Program Files\nodejs\node_modules
3、手动删除C:\user\你\node_modules\
运行node.js程序
1、目录
cd
x:
2、运行
node x.js 2:11:11
注意:node没有document和Window
模块使用(包)
比如前台使用jQuery,引用后直接用
而对于node来说步骤
1、安装(在cmd中:cnpm i xxx )
2、引入(const multer=require(‘multer’))
3、使用
监听:等待客户端的链接,对于web来说,客户端就是浏览器
端口:数字,一个端口只能有一个服务【最小是1,最大6w多,而且有命令可以看占用的端口】
node.js服务器,事实上node的学习就是各个模块的使用
npm=>cnpm
npm install xxx
const xx=require('xxx')
举例:
node是和web打交道的,会用到http模块(http模块是系统模块,node自带的)
http.js
const http=require('http');
let server=http.createServer(()=>{ //回调函数,每次有人请求就会回调
console.log('请求来了');
}); //http.createServer创建一个服务器,如果node运行后进入可以打字的状态说明运行结束
server.listen(8080); //listen监听,等待链接。如果没有listen,就只会创建变量赋值结束。里面的数字是端口。此时打开浏览器,地址输入localhost:8080(即端口数字,不一定是8080这一个)cmd上就会显示:请求来了【此时浏览器一直在运行】。接下来要处理请求