摘要:说到底还是练习的不够多,一直处于只看不做的程度上。所以搜集了这些正则习题,来保证温故而知新。本文不讲基础,只记录习题,如果后续有新的题目,也会保持更新。
正则表达式,有木有人像我一样,学了不知道多少遍,学的时候看起来都懂了,过一段时间就又忘的差不多了,等真正要用到的时候,还是一脸懵逼。说到底还是练习的不够多,一直处于只看不做的程度上。所以搜集了这些正则习题,来保证温故而知新。建议读者看完题目后可以自己先做一做,然后再看实现方法。本文不讲基础,只记录习题,如果后续有新的题目,也会保持更新。
1、var s1 = "get-element-by-id"; 给定这样一个连字符串,写一个function转换为驼峰命名法形式的字符串 getElementById
var f = function(s) { return s.replace(/-w/g, function(x) { return x.slice(1).toUpperCase(); }) }
2、判断字符串是否包含数字
function containsNumber(str) { var regx = /d/; return regx.text(str); }
3、判断电话号码
function isPhone(tel) { var regx = /^1[34578]d{9}$/; return regx.test(tel); }
4、判断是否符合指定格式
给定字符串str,检查其是否符合如下格式
XXX-XXX-XXXX
其中X为Number类型
function matchesPattern(str) { return /^(d{3}-){2}d{4}&/.test(str); }
5、判断是否符合USD格式
给定字符串 str,检查其是否符合美元书写格式
以 $ 开始
整数部分,从个位起,满 3 个数字用 , 分隔
如果为小数,则小数部分长度为 2
正确的格式如:$1,023,032.03 或者 $2.03,错误的格式如:$3,432,12.12 或者 $34,344.3**
function isUSD(str) { var regx = /^$d{1,3}(,d{3})*(.d{2})?$/; return regx.test(str); }
6、JS实现千位分隔符
function format(number) { var regx = /d{1,3}(?=(d{3})+$)/g; return (number + "").replace(regx, "$&,") // $&表示与regx相匹配的字符串 }
7、获取 url 参数
获取 url 中的参数
指定参数名称,返回该参数的值 或者 空字符串
不指定参数名称,返回全部的参数对象 或者 {}
如果存在多个同名参数,则返回数组
function getUrlParam(url, key) { var arr = {}; url.replace(/??(w+)=(w+)&?/g, function(match, matchKey, matchValue) { if (!arr[matchKey]) { arr[matchKey] = matchValue; } else { var temp = arr[matchKey]; arr[matchKey] = [].concat(temp, matchValue); } }); if (!key) { return arr; } else { for (ele in arr) { if (ele = key) { return arr[ele]; } } return ""; } }
8、验证邮箱
function isEmail(email) { var regx = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+$/; return regx.test(email); }
9、验证身份证号码
身份证号码可能为15位或18位,15位为全数字,18位中前17位为数字,最后一位为数字或者X
function isCardNo(number) { var regx = /(^d{15}$)|(^d{18}$)|(^d{17}(d|X|x)$)/; return regx.test(number); }
10、匹配汉字
var regx = /^[u4e00-u9fa5]{0,}$/;
11、去除首尾的"/"
var str = "/asdf//"; str = str.replace(/^/*|/*$/g, "");
12、判断日期格式是否符合 "2017-05-11"的形式,简单判断,只判断格式
var regx = /^d{4}-d{1,2}-d{1,2}$/
13、判断日期格式是否符合 "2017-05-11"的形式,严格判断(比较复杂)
var regx = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
14、IPv4地址正则
var regx = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
15、十六进制颜色正则
var regx = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
16、车牌号正则
var regx = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
17、过滤HTML标签
var str="dasdsa
nice
test" var regx = /<[^<>]+>/g; str = str.replace(regx, "");
18、密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
var regx = /^.*(?=.{6,})(?=.*d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
19、URL正则
var regx = /^((https?|ftp|file)://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?$/;
20、匹配浮点数
var regx = /^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$/;
21、
写一个正则表达式,匹配 "
var str = ""; var regx = /^<.*?>/; var resiult = regx.exec(str)[0];
最后推荐一个练习正则的网站 regulex%7B2%7D%5Cd%7B4%7D%26),可以查看正则匹配的走向
如果喜欢请关注我的Github,给个Star吧,我会定期分享一些JS中的知识,^_^
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/93933.html
摘要:下面代码会存在什么问题,如何改进一行代码输出之间的所有偶数。简述进程之间如何通信多路复用的作用模型的区别什么是并发和并行解释什么是异步非阻塞的作用面试题说说你知道的命令如何查看某次提交修改的内容答案扫码下面的二维码订阅即可获取。 引言 最近在刷面试题,所以需要看大量的 Python 相关的面试题,从大量的题目中总结了很多的知识,同时也对一些题目进行拓展了,但是在看了网上的大部分面试题不...
摘要:函数式编程前端掘金引言面向对象编程一直以来都是中的主导范式。函数式编程是一种强调减少对程序外部状态产生改变的方式。 JavaScript 函数式编程 - 前端 - 掘金引言 面向对象编程一直以来都是JavaScript中的主导范式。JavaScript作为一门多范式编程语言,然而,近几年,函数式编程越来越多得受到开发者的青睐。函数式编程是一种强调减少对程序外部状态产生改变的方式。因此,...
摘要:前言在两家大厂工作了年,当了年的前端面试官,把一些较难的面试题与答案汇总在我的中。请说出至少种方法,越难越好难度阿里腾讯这种题有简单方法,也有难的方法,我建议大伙在面试的时候,尽量往难的说。 前言 在两家大厂工作了6年,当了3年的前端面试官,把一些较难的面试题与答案汇总在我的Github中。希望对大家有所帮助,助力大家进入自己理想的企业。 项目地址是:https://github.co...
摘要:前言在两家大厂工作了年,当了年的前端面试官,把一些较难的面试题与答案汇总在我的中。请说出至少种方法,越难越好难度阿里腾讯这种题有简单方法,也有难的方法,我建议大伙在面试的时候,尽量往难的说。 前言 在两家大厂工作了6年,当了3年的前端面试官,把一些较难的面试题与答案汇总在我的Github中。希望对大家有所帮助,助力大家进入自己理想的企业。 项目地址是:https://github.co...
阅读 2047·2023-04-26 02:23
阅读 1790·2021-09-03 10:30
阅读 1354·2019-08-30 15:43
阅读 1192·2019-08-29 16:29
阅读 533·2019-08-29 12:28
阅读 2334·2019-08-26 12:13
阅读 2177·2019-08-26 12:01
阅读 2401·2019-08-26 11:56