\d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{n},^,$分别是什么?##
字符
含义
\d
数字字符
\D
非数字字符
\s
空白符
\S
非空白符
\w
单词字符(字母、数字下划线 )
\W
非单词字符
[a-zA-Z0-9]
字母、数字
\b
单词边界(开头、结尾、空格分隔、中横行分隔)
.
除了回车符和换行符之外的所有字符
^
以xxx开头
$
以xxx结尾
*
匹配零个或多个
+
匹配一个或多个
?
匹配零个或一个
{n}
匹配n个
{n,m}
匹配n至m个
{n,}
至少匹配个
{,m}
最多匹配m个
贪婪模式和非贪婪模式指什么?##
贪婪模式:在符合正则表达式的前提下,尽可能多的匹配,默认为贪婪模式。
非贪婪模式:在符合正则表达式的前提下,尽可能少的匹配,方法:在量词后加上? ,如{n,m} ? 。
写一个函数trim(str),去除字符串两边的空白字符##
function trim(str){
return str.replace(/^\s+|\s+$/g,'')
}
使用正则实现 addClass(el, cls)、hasClass(el, cls)、removeClass(el,cls)##
function hasClass(el,cls){
var reg = new RegExp("^|\\s" + cls + "$|\\s");
return reg.test(el.className)
}
function addClass(el,cls){
if (!hasClass(el,cls)) {
el.className += " " + cls;
}
}
function removeClass(el, cls) {
var reg = new RegExp("^|\\s" + cls + "$|\\s","g");
if (hasClass(el,cls)) {
el.className.repalce(reg,"")
}
}
格式判断##
写一个函数isEmail(str),判断用户输入的是不是邮箱
写一个函数isPhoneNum(str),判断用户输入的是不是手机号
写一个函数isValidUsername(str),判断用户输入的是不是合法的用户名(长度6-20个字符,只能包括字母、数字、下划线)
写一个函数isValidPassword(str), 判断用户输入的是不是合法密码(长度6-20个字符,包括大写字母、小写字母、数字、下划线至少两种)
function isEmail(str) {
/^[A-Za-z0-9][\w\.\-]+@[A-Za-z0-9][\w\-]+[A-Za-z0-9]\.[A-Za-z]{2,}$/;
}
function isPhoneNum(str) {
var exp = /^1\d{10}$/;
return exp.test(str);
}
function isValidUsername(str) {
var exp = /^\w{6,20}$/;
return exp.test(str);
}
function isLegalPassword(str){
if(str.length < 6 || str.length > 20){
return false;
}
//如果包含上述四种以外的字符,false
if(/\W/.test(str)){
return false;
}
//如果全为大写、小写、下划线、数字, false
if( /(^[a-z]+$)|(^[A-Z]+$)|(^_+$)|(^\d+$)/g.test(str) ){
return false;
}
return true;
}
写一个正则表达式,得到如下字符串里所有的颜色(#121212)##
var reg = /#[0-9a-fA-F]{6}/g;
var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee #fd2 "
alert( subj.match(reg) ) // #121212,#AA00ef
下面代码输出什么? 为什么? 改写代码,让其输出hunger, world##
var str = 'hello "hunger" , hello "world"';
var pat = /".*"/g;
str.match(pat);//"hunger" , hello "world"
// 默认为贪婪模式,需要修改为非贪婪模式,在量词后加?
var pat = /".*?"/g;
补全如下正则表达式,输出字符串中的注释内容. (可尝试使用贪婪模式和非贪婪模式两种方法)##
var str = '.. <!-- My -- comment \n test --> .. <!----> .. ';
var re = /<[\s|\S]*?>/g;//非贪婪
// 或者
var re = /<[^<]+>/g;//贪婪
str.match(re) // '<!-- My -- comment \n test -->', '<!---->'
补全如下正则表达式##
var str = '<> <a href="/"> <input type="radio" checked> <b>'
var re = /<[^>]+?>/g;
str.match(re) // '<a href="/">', '<input type="radio" checked>', '<b>'
最后编辑于 :2017.12.03 22:05:55
©著作权归作者所有,转载或内容合作请联系作者 【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。 平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。