2019.8.1正则二

预习

//去除str中的字母
var str = '1sss2aaa3sdsdf4sf5sd622';
str = str.replace(/[a-z]*/g,'');
console.log(str);

//查找a中出现最多的字符,打印次数
var a = 'aaaavvvvbbbdddbeeeddcccc';
for(var i = 0,result = [];i < a.length;i++){
//在result中有以a[i]为下标的元素,则给元素a[i]+1
if(result[a[i]]){
result[a[i]]++;
}else{//否则,给这个元素赋值1
result[a[i]] = 1;
}
}
//打印出每个元素出现的次数
console.dir(result);
//给个max表示最大次数,char表示最多次数的下标
var max = 0;char = '';
//遍历每个元素
for(var key in result){
//找出每个下标里面最大的元素,让max为次数,char为下标
if(result[key] > max){
max = result[key];
char = key;
}
}
//打印
console.log('出现最多的是' + char + ',出现了' + max + '次');

新知识

<ul><li><a href="www.baidu.com">百度</a></li>
<li><a href="www.bailiban.com">百里半</a></li></ul>
<button onclick="ow()">验证</button>
<script type="text/javascript">
//RegExp对象中可以写正则表达式
//var reg = /正则/ig;
//1.创建固定不变的正则表达式,创建的是一个对象,直接量。
var str = 'no can n/o say,you can you up';
var reg = /n/o/g;//双斜杠里的斜杠需要用反斜杠配合
var arr = str.match(reg);
console.log(arr);

//2.创建动态的正则表达式
var mess = '床前明月光,一行白鹭上青天,日照香炉生紫烟';
var names = ['月光','白鹭','香炉','紫烟'];
var nameReg = new RegExp(names.join('|'),'g');
var kws = mess.match(nameReg);
console.log(kws);

//3.验证字符串是否符合正则表达式的要求
//var bool = reg.test(待检测字符串);
//输入六位数密码,验证。
function ow() {
var reg = /^d{6}$/;
while(!reg.test(prompt('请输入密码:'))){
alert('格式错误,请输入六位数密码')
}
document.write('<h1>验证通过</h1>');
}


//4.
var msg = '吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮';
reg = /([吃吐])葡萄/g;
while((arr = reg.exec(msg))!= null){
console.log('在位置' + arr['index'] + '发现敏感词' +arr['0']);
}

//5.正则默认为贪婪模式,指匹配最长的符合的内容
//改为懒惰模式:
//1、.* .+ ====> .*? .+?
//2、[^XXX]*
var html = '<ul><li><a href="www.baidu.com">百度</a></li><li><a href="www.bailiban.com">百里半</a></li></ul>';
reg = /href="([^"]*)/ig;
while((reg.exec(html))!=null){
console.log(RegExp.$1);
}

四道题

<button onclick="one()">one</button>
<button onclick="two()">two</button>
<button onclick="three()">three</button>
<button onclick="four()">four</button>
<script type="text/javascript">
// 1. 如何自定义四舍五入的方法 要求是能根据任意小数位四舍五入
// var num = Number(prompt('请输入你要取整的小数:'));
// console.log(num)
// var n = prompt('请输入你要保留的位数');
// console.log(num.toFixed(n));
function one(){
var num = prompt('请输入你要取整的小数:');
var d = prompt('请输入你要保留的位数');
try{
if(isNaN(num) || isNaN(d)){
console.log('请输入正确的数字!')
}else{
num = num*Math.pow(10,d);
num = Math.round(num);
console.log(num/Math.pow(10,d));
}
}catch(e){
console.log(String(e));
}
}

// 2. 算术计算的游戏,随机出十道题,接受用户答题,答对一题得10分,错一题扣10
// 如果输入的是exit,退出游戏最终给出得分
//
function two(){
var count = 0;
for(var i = 1; i < 11;i++){
var num1 = parseInt(Math.random()*10),num2 = parseInt(Math.random()*10);
var num = prompt(num1 + '+' + num2 + '的值是:');
if(num1 + num2 == num){
count += 10;
}else if (num == 'exit'){
break;
}else{
count -= 10;
}
}console.log('最终得分是:' + count);
}

// 3.计算两个时间之间相差的小时数
function three(){
var first = prompt('请输入第一个时间:');
var firstdate = new Date(first);
var second = prompt('请输入第二个时间:');
var seconddate = new Date(second);
var time = (seconddate - firstdate)/3600000;
console.log('中间相差了' + time + '个小时');
}

// 4当前时间格式化为:xxx年x月x日 星期x am/pm hh:mm:ss
function four(){
var nowdate = new Date();
console.log(nowdate);
var day = nowdate.getDay() == 0?'六':nowdate.getDay() == 1?'一':nowdate.getDay() == 2?'二':nowdate.getDay() == 3?'三':nowdate.getDay() == 4?'四':nowdate.getDay() == 5?'五':'六';
var hours;
if(nowdate.getHours() > 12){
hours = 'pm';
}else{
aours = 'am';
}
var time = nowdate.getFullYear() + '年' + (nowdate.getMonth() + 1) + '月' + nowdate.getDate() + '日 ' + ' 星期' + day +' ' + hours + ' ' + nowdate.getHours() + ':' + nowdate.getMinutes() + ':' + nowdate.getSeconds();
console.log(time)
}

原文地址:https://www.cnblogs.com/awei313558147/p/11302422.html