Python全栈 Web(JavaScript 数组、string、正则、Math、Date)

简介:

数组:
常用的API:
toString()
将数组转换为字符串  默认是将数组的元素
使用逗号隔开 链接成字符串在进行返回
join(seperator)
将数组的元素使用seperator字符串作为分隔符
链接成字符串再进行返回
reverse()
将数组进行反转  该函数会改变现有数组的结构 不需要接受返回值
sort()
对数组的元素进行排序  默认按照Unicode码进行排序 对数字不准确
会改变原有数组的内容
特点:
允许自定义的排序规则(排序函数)用来指定数组的排序方式
语法:
arr.sort(排序函数);
排序函数:
升序的排序函数:
function sortAsc(a, b){
return a - b;
}
arr.sort(sortAsc);
匿名函数实现:
arr.sort(function(a, b){
return a - b;
})
降序排序:
排序后 reverse()
return b - a;
原理:(冒泡排序)
function sortAsc(a, b){
通过返回值表示 a和b 的大小关系
返回值:
正数:表示 a > b 交换两个数字的位置
零:表示   a = b 数字不动
负数:表示 a < b 数字不动
}
调用时只需将函数名传参给sort函数 内部自动实现调用 
  每次去两个元素的值进行比较 决定元素的位置是否交换

                          


进出栈操作:
push()
入栈/压栈  向数组的尾部添加新的元素 并返回新数组的长度
等同于 :arr[arr.length] = "";
pop()
出栈/弹栈  删除数组中的最后一个内容 并返回删除的内容
unshift()
向数组头部添加一个新的元素并返回数组的长度
shift()
删除数组头部元素并返回删除的元素
二维数组:
声明二维数组:
var names = [
[1, 2, 3, 4, 5, 6, 7]
["a", "b", "c", "d", "f"]
]
获取 "b":
var sub_name = names[1];
var name = sub_name[1];
var name = names[1][1];
字符串-string:
声明字符串:
var str = "字符串";
var str = String("字符串");
var str = new String("字符串");
length 属性:
返回字符串的长度
String的API方法:
1.大小写转换函数:
toUpperCase()
返回完全大写
toLowerCase()
返回完全小写
2.去掉字符串两端的空格:
trim()
该方法不会改变现有字符串 是将去掉字符串后的内容进行返回
3.获取指定位置的字符:
charAt(index)
获取指定位置的字符
charCodeAt()
获取指定字符的Unicode码:
4.检索字符串:
indexOf(value, fromIndex)
value:
要查找的子字符串
fromIndex:
开始查找的位置  省略,默认重头开始
返回值:
返回字符串第一次出现字符的下标 如果没有查询 返回-1
lastIndexOf(value, fromIndex)
查找value最后一次出现的位置 查找方式是从后往前找第一次出现的
5.截取子字符串:
substring(start, end)
返回从start到end-1之间的字符串  如果省略则截取整个字符串 
6.分隔字符串:
split(seperator)
将具备特殊链接的字符串拆成字符串数组
7. 模式匹配:
作用:
配合子字符串 和 正则表达式完成 字符串的查找、替换
正则:
语法:
/正则表达式/修饰符
修饰符:
i: ignorecase(忽略大小写)
g: global(全局匹配)
m: multiple(允许多行匹配)
函数:
relplace(substr/regexp, rep, acement)
字符串中 将substr或满足regexp格式的字符串替换成replacement
match(substr/regexp)
按照指定的字符串或正则表达式进行比配  
并返回满足格式的字符串的个数

RegExp对象:
创建RegExp对象:
var reg = /正则表达式/装饰符;
var reg = new RegExp("匹配模式", "装饰符");
装饰符可以省略
RegExxp常用方法:
test(string)
string:要验证的字符串
如果reg能够匹配到string的话就返回True 否则返回False
Math对象:
属性:
Math.PI
Math.E
方法:
三角函数:
Math.sin()
Math.cos()
Math.tan()
计算函数:
Math.sqrt() 开平方
Math.log() 求对数
Math.pow(x, y) 求x的y次方
数值函数:
Math.abs(x) 绝对值
Math.max(a, b, c)求最大
Math.min(a, b, c)求最小
Math.random() 随机数(0~1)
Math.round(x) 将x四舍五入
Date对象:
获取客户端日期时间
创建Date对象:
获取当前日期对象
var date = new Date();
初始化自定义时间对象:
var date = new Date("2018-9-12 12:00:00");
方法:
读取或设置当前的毫秒数
getTime()
返回自1970年1月1日 到当前时间的毫秒数
setTime()
根据毫秒数计算日期时间
读取时间分量:
getFulYear()
获取当前时间对象的年份
getYear()
返回1900年以来到当前进过多少年
getMonth()
返回0~11的数字来表示1~12月 手动+1
getDate()
返回date对象对应的日
getDay()
返回0~6 表示星期几
获取时间:
getHours() 获取小时
getMinutes() 获取分钟
getSeconds() 获取秒
getMilliseconds() 获取毫秒
将日期时间转换为字符串
toString()
toLocaleString()
将日期对象转换为本地时间字符串
toLocaleTimeString()
转换为本地时间字符串(时分秒)
toLocaleTDateString()
转换为本地时间字符串(年月日)


1.随意从弹框中录入一个数字
2.将该数字转换为二进制,并输出


<!DOCTYPE html>
<html>
<head>
	<title></title>
	<meta charset="utf-8">
	<script type="text/javascript">
		var num = Number(prompt());
		var s = [];
		while (true){
			var x = num % 2;
			s[s.length] = x;
			num = num / 2 | 0;
			if (num == 0){
				break;
			}
		} 
		s.reverse()
		console.log(num, "转换为二进制为: " + s.join(" "))
	</script>
</head>
<body>

</body>
</html>

3.从身份证号中提取生日
220101199912056621
生日:1999年12月05日



<!DOCTYPE html>
<html>
<head>
	<title></title>
	<meta charset="utf-8">
	<script type="text/javascript">
		function getBrith(){
			var brith = prompt();
			var birthday = brith.substring(6, 14);
			var year = birthday.substring(0, 4);
			var manth = birthday.substring(4, 6);
			var day = birthday.substring(6, 8);
			alert(year + "年" + manth + "月" + day + "日");
		}
	</script>
</head>
<body>
	<button onclick="getBrith()">生日</button>
</body>
</html>

var str = "1001_5&1002_4&1053_1";
                将字符串解析为如下格式
商品ID:1001
购买数量:5
商品ID:1002
购买数量:4
商品ID:1053
购买数量:1

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<meta charset="utf-8">
	<script type="text/javascript">
		var str = "1001_5&1002_3&1003_6";
		var commodity = str.split("&");
		for (var i = 0; i < commodity.length; i++){
			var list = commodity[i].split("_");
			console.log("商品ID:", list[0]);
			console.log("商品数量:", list[1]);
		}
	</script>
</head>
<body>

</body>
</html>

模拟验证码的生成和验证
 1.创建一个数组,初始化若干数据(英文大小写,数字) 
 2.生成一个四位的随机验证码 验证码需要从数组中获取 Math.random() : 生成一个0-1(取不到)之间的随机小数 
 3.将随机生成的验证码字符串通过prompt()展示给用户
 4.比较用户输入的字符与生成的验证码是否一致并给出提示 (忽略大小写)


<!DOCTYPE html>
<html>
<head>
	<title></title>
	<meta charset="utf-8">
	<script type="text/javascript">
		function generalCode(len){
			var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", "c", "d", "W", "F", "S", "x", "Z", "#", "$", "!", "*", "@", "&", "k", "g", "j"];
			var Code = "";
			for (var i = 0; i < len; i++){
				var str = arr[Math.random() * arr.length | 0]
				Code += str;
			}
			return Code;
		}
		function validateCode(){
			var Code = generalCode(6);
			var input = prompt("验证码为:  " + Code)
			if (input.toLowerCase() == Code.toLowerCase()){
				alert("输入正确")
			} else {
				alert("输入错误")
			}
		}
	</script>
</head>
<body>
	<button onclick="validateCode()">验证码</button>
</body>
</html>


相关文章
|
28天前
|
安全 测试技术 网络安全
如何在Python Web开发中进行安全测试?
如何在Python Web开发中进行安全测试?
|
28天前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
33 4
|
28天前
|
存储 监控 安全
如何在Python Web开发中确保应用的安全性?
如何在Python Web开发中确保应用的安全性?
|
26天前
|
开发者 Docker Python
从零开始:使用Docker容器化你的Python Web应用
从零开始:使用Docker容器化你的Python Web应用
34 1
|
27天前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
|
28天前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
28 4
|
28天前
|
存储 开发框架 关系型数据库
|
索引 Python 机器学习/深度学习
下一篇
DataWorks