2019.8.1正则二

Posted awei313558147

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 = /^\d6$/;
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)

 

以上是关于2019.8.1正则二的主要内容,如果未能解决你的问题,请参考以下文章

项目二学会正则表达式,编程如虎添翼

正则表达式二

电子邮箱的正则表达式————呱呱二号

JavaScript正则表达式二

grep命令与正则表达式(过滤)二

正则表达式————呱呱二号