第三节 正则表达式与json对象及node介绍

正则表达式

用途:匹配字符串,数据校验——安全性,采集
正则写法:(定界符//)

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上就会显示:请求来了【此时浏览器一直在运行】。接下来要处理请求

你可能感兴趣的:(第三节 正则表达式与json对象及node介绍)