正则表达式
来源:互联网 发布:单片机md0md1是什么 编辑:程序博客网 时间:2024/05/03 06:00
找出字符串中符合规则的字符
由普通字符(26个英文字母 和数字等)
和特殊字符 . / 等组成
创建正则表达式的正确方法?
1.new RegExp('lg exp ');2./正则表达式/<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8" /><title>创建正则表达式的两种方式</title></head><body> <script> // 字面量或直接量 // [] // {} // /js/ // // 构造函数 // new Array() // new Object() // // regular expression 正则表达式英文 // new RegExp() // var str = 'I love js'; // var pattern = /js/; 匹配到的一定是字符串内容 // '3.4' // /js5_正则 ,;!@./ // var str = 'I love js'; // var pattern = /js/; // // test exec 找到匹配的字符 // console.log(pattern.test(str));//返回布尔值 // console.log(pattern.exec(str));//将找到的字符放到数组中返回 // var str = 'I love Js'; // var pattern = /js/; // // test exec // console.log(pattern.test(str)); // console.log(pattern.exec(str));//null // var str = 'I love Js'; // var pattern = /Js/; // console.log(pattern.test(str)); // console.log(pattern.exec(str)); 返回匹配到的字符串的数组 找不到返回null //i ignoreCase 忽略大小写 //g global 全局匹配 // m multiline 多行匹配 // var str = 'I love Js'; // var pattern = /js/i; // console.log(pattern.test(str)); // console.log(pattern.exec(str));//与位置无关 这几个随便排 // /js/ig // /js/gi // /js/igm // /js/img // var str = 'I love js'; // var pattern = new RegExp('js'); // console.log(pattern.test(str)); // console.log(pattern.exec(str)); // var str = 'I love Js'; // var pattern = new RegExp('js', 'i'); // console.log(pattern.test(str)); // console.log(pattern.exec(str)); // /js/i // new RegExp('js', 'i') // var str = 'I love Js'; // var userInput = 'love'; // var pattern = /userInput/i; 不可取的方法//错误的方法 // var str = 'I love Js'; // var userInput = 'love'; // var pattern = '/' + userInput + '/i'; // console.log(typeof pattern); var str = 'I love Js'; var userInput = 'love'; var pattern = new RegExp(userInput, 'i');//体现了构造方法的优势 userInput随时可以改变 console.log(pattern); console.log(typeof pattern); console.log(pattern.exec(str));</script></body></html>
正则表达式工具
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8" /><title>正则表达式测试工具</title><style> #regexp { width: 650px; margin: 100px auto; font-size: 14px; } #regexp .title { color: #777; font-size: 24px; text-align: center; } #regexp .textbox { width: 638px; height: 150px; border: 1px solid #ccc; border-radius: 5px; padding: 5px; resize: none; } #regexp .textfield { width: 215px; padding: 5px; border: 1px solid #ccc; }</style></head><body> <div id="regexp"> <h1 class="title">正则表达式测试工具</h1> <textarea id="userText" class="textbox" placeholder="在此输入待匹配的文本"></textarea> <p> 正则表达式:<input type="text" id="userRegExp" class="textfield" placeholder="在此输入正则表达式" /> <input type="checkbox" name="userModifier" value="i" />忽略大小写 <input type="checkbox" name="userModifier" value="g" />全局匹配 <input type="checkbox" name="userModifier" value="m" />多行匹配 <input type="button" id="matchingBtn" value="测试匹配" /> </p> 匹配结果: <textarea id="matchingResult" class="textbox" disabled="disabled"></textarea> </div><script> var userText = document.getElementById('userText'), userRegExp = document.getElementById('userRegExp'), userModifier = document.getElementsByName('userModifier'), matchingBtn = document.getElementById('matchingBtn'), matchingResult = document.getElementById('matchingResult'); var pattern, modifier = ''; for (var i = 0; i < userModifier.length; i++) {//给每个复选框添加上点击事件 userModifier[i].onclick = function () { modifier = '';//每次被点击要被清空 复选框 for (var j = 0; j < userModifier.length; j++) {//任意一个被勾选的时候要检测哪几个被选上 if (userModifier[j].checked) { modifier += userModifier[j].value; } } } } matchingBtn.onclick = function () { if (!userText.value) { alert('请输入待匹配的文本!'); userText.focus();//光标定位 return; } if (!userRegExp.value) { alert('请输入正则表达式!'); userRegExp.focus(); return; } pattern = new RegExp(userRegExp.value, modifier); matchingResult.value = pattern.exec(userText.value) || '(没有匹配)'; }</script></body></html>
简单的转义字符
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8" /><title>简单的转义字符</title></head><body><script> // \ // var str = '// 我是注释'; // var pattern = /\/\//; // 匹配// 需要用\转义 // console.log(pattern.exec(str)); // var str = '\\\\'; // '\'默认视为把右边引号转义了 所以要用\\ 字符串和正则表达式关系亲密 // var pattern = /\\\\/; // console.log(str); // console.log(pattern.exec(str)); // var str = 'nba'; // var pattern = /\n/; //换行//console.log(pattern.exec(str) // var str = '1.html\n2.css\n3.js'; // var pattern = /\n/; // console.log(str); // console.log(pattern.exec(str)); // var str = ' js'; // var pattern = /\t/;//tab // console.log(pattern.exec(str)); // var str = 'a\nb'; // var pattern = /\x61\x0A\x62/;//ascll 用16进制表示的 不常用 // console.log(pattern.exec(str)); // var str = ' js'; // var pattern = /\u0009/;//unicode编码 表示的tab 常用 匹配汉字会用到 // console.log(pattern.exec(str)); var str = 'Alex帅'; var pattern = /衰/; //中文的unicode 范围 \u4e00-\u9fa5</script></body></html>
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8" /><title>字符类</title></head><body> <script> // var str = 'sjavascript'; // var pattern = /[js]/; //匹配[]中任意一个字符 先匹配到谁就是谁 // var str = 'javascript'; // var pattern = /[^js]/; //除了js以外的任何字符 // console.log(pattern.exec(str));//a // var str = 'javascript'; // var pattern = /[a-z]/; //26个字母 // console.log(pattern.exec(str)); // var str = 'javascript'; // var pattern = /[c-d]/; // console.log(pattern.exec(str)); // var str = 'javascript'; // var pattern = /[c-c]/; // console.log(pattern.exec(str)); // var str = 'Alex帅'; // var pattern = /[\u4e00-\u9fa5]/; // console.log(pattern.exec(str)); // var str = 'JavaScript'; // var pattern = /[a-zA-Z]/; // console.log(pattern.exec(str)); // var str = '00544'; // var pattern = /[0-9]/; // console.log(pattern.exec(str)); // var str = 'JavaScript2.0'; // var pattern = /[a-zA-Z0-9]/; // console.log(pattern.exec(str)); // /[a-zA-Z0-9@_asdf]/ // /[^\n]/ 除了\n之外的字符被匹配 // /./ 等同于除了\n以外的字符 // var str = '3.1415926'; // var pattern = /./; // console.log(pattern.exec(str)); // var str = '3.1415926'; // var pattern = /\./; // console.log(pattern.exec(str)); // var str = '\n'; // var pattern = /./; // console.log(pattern.exec(str)); // /[a-zA-Z0-9_]/ /\w/ 后者是简写 // /[^a-zA-Z0-9_]/ /\W/ // var str = '_@'; // var pattern = /\w/; // console.log(pattern.exec(str)); // var str = '00544'; // var pattern = /\d/; 相当于[0-9] // console.log(pattern.exec(str)); // var str = ' '; // var pattern = /\s/; 代表空格和tab // console.log(pattern.exec(str)); // \S var str = '1 1'; var pattern = /[\s\d]/; //[]表示不管里面有多少 只匹配一个</script></body></html>
重复和贪婪
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8" /><title>重复</title></head><body> <script> // var str = '110'; // var pattern = /\d{2}/; //匹配0-9 可以匹配两个 // console.log(pattern.exec(str)); // var str = '110'; // var pattern = /\d{1,2}/; //匹配一个或者两个 // console.log(pattern.exec(str)); // // for (var i = 0; i < 3; i++) { // // } // var pattern = /\d{1, 2}/;//不能乱写空格 // var str = '110'; // var pattern = /\d{1,}/; //匹配至少一个 // console.log(pattern.exec(str)); // var str = '110'; // var pattern = /\d{,2}/; //XX 不能这么写 // console.log(pattern.exec(str)); // var str = '110'; // var pattern = /\d?/; // {0,1} // console.log(pattern.exec(str)); // var str = '110'; // var pattern = /\d+/; // {1,} // console.log(pattern.exec(str)); // var str = '110'; // var pattern = /\d*/; // {0,} // console.log(pattern.exec(str)); // var str = '肯德基豪华午餐:¥15.5!'; // // var pattern = /\d+\.?\d*/; //匹配数字 不确定整数位是否是一个以上所以是 \d+ 匹配.因为.可能因为价格是整数没有. 用|.? 最后一个是匹配小数位 // var pattern = /\d{1,}\.{0,1}\d{0,}/; // console.log(pattern.exec(str)); // var str = 'aaab'; // var pattern = /a+/; //匹配aaa 条件允许就匹配尽量多 // console.log(pattern.exec(str)); // var str = 'aaab'; // var pattern = /a+?/; //a // console.log(pattern.exec(str)); // var str = 'aaab'; // var pattern = /a+b/;//aaab // console.log(pattern.exec(str)); // var str = 'aaab'; // var pattern = /a+?b/;//aaab 第一个就匹配上了a 而不是第三个a // console.log(pattern.exec(str)); // var str = '<td><p>a</p></td><td><p>b</p></td>'; // var pattern = /<td>.*<\/td>/;//.*最少0最多无限 // console.log(pattern.exec(str)); //全部被匹配 var str = '<td><p>a</p></td><td><p>b</p></td>'; var pattern = /<td>.*?<\/td>/; console.log(pattern.exec(str)); //只匹配第一个td中间的内容 转换为非贪婪模式只用加个?</script></body></html>
分组 、引用、捕获
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8" /><title>选择、分组和引用</title></head><body> <script> //选择 // var str = 'css html js'; // var pattern = /html|css|js/; // | 表示或者 // console.log(pattern.exec(str)); // var str = 'ab'; // var pattern = /a|ab/;//a // console.log(pattern.exec(str)); //分组 // var str = 'abab'; // var pattern = /(ab)+/; // console.log(pattern.exec(str));//abab ab // var str = 'abcd'; // var pattern = /(ab)c/; //捕获 // console.log(pattern.exec(str));//abc ab // var str = 'abcd'; // var pattern = /(?:ab)c/;//非捕获 abc // console.log(pattern.exec(str)); // var str = 'abcd'; // var pattern = /(ab)(c)/; //abc ab c // console.log(pattern.exec(str)); // var str = 'abcd'; // var pattern = /(a(b(c)))/; //abc abc bc c // console.log(pattern.exec(str));//引用 // var str = 'ab cd ab'; // var pattern = /(ab) cd \1/; // \1代表第一个分组 也就是 (ab) abcd ab // console.log(pattern.exec(str));// <> 这个括号不用转义 var str = '<p><a>这是一段文字</a></p>'; var pattern = /<([a-zA-Z]+)>(.*?)<\/\1>/; console.log(pattern.exec(str)); 'abc' /c/ index</script></body></html>
问:现有类似’javascript is js’的字符串,其中javascript中的j和s的大小写与后面js中j和s的大小写保持一致,即’Javascript is Js’或’JavaScript is JS’等,请用引用的方式写出能够匹配它的正则表达式,下列选项中哪个是用分组和引用的方式来匹配的?
/([Jj])ava([Ss])cript\sis\s(\1\2)/
边界匹配
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8" /><title>指定匹配位置</title></head><body> <!-- <p class="odd2 odd ">1</p><p class="even">2</p><p class="odd">3</p><p class="even">4</p> --><script> //首尾匹配 // var str = 'html js'; // var pattern = /^js/; //表示j必须在字符串开头 // console.log(pattern.exec(str)); //与 /[^0-9]不同 / // var str = 'html js css'; // var pattern = /js$/; //尾匹配 // console.log(pattern.exec(str)); // var str = '110119120'; // var pattern = /^\d+$/; // console.log(pattern.exec(str)); // if (pattern.test(str)) { // console.log('全是数字!'); // } else { // console.log('不全是数字!'); // } // var str = '11011a9120'; // var pattern = /\D/;//非数字 // console.log(pattern.exec(str)); // if (pattern.test(str)) { // console.log('不全是数字!'); // } else { // console.log('全是数字!'); // } //边界匹配 // var str = 'js html'; // var pattern = /js\b/; // 匹配到js js后的空格是一个边界 // console.log(pattern.exec(str)); // var str = '@@@js@@@'; // var pattern = /\bjs\b/; // console.log(pattern.exec(str)); // var oddP = getByClassName('odd'); // var evenP = getByClassName('even'); // for (var i = 0; i < oddP.length; i++) { // oddP[i].style.backgroundColor = 'red'; // } // for (var i = 0; i < evenP.length; i++) { // evenP[i].style.backgroundColor = 'yellow'; // } // function getByClassName(className, parentNode) { // if (document.getElementsByClassName) { // return document.getElementsByClassName(className); // } else {console.log(1); // parentNode = parentNode || document; // var nodeList = []; // var allNodes = parentNode.getElementsByTagName('*'); // var pattern = new RegExp('\\b' + className + '\\b');//方法二 只要保证这个单词前后都有 // for (var i = 0; i < allNodes.length; i++) { // if (pattern.test(allNodes[i].className)) { // nodeList.push(allNodes[i]); // } // } // return nodeList; // } // } // function getByClassName(className, parentNode) { // if (document.getElementsByClassName) { // return document.getElementsByClassName(className); // } else {console.log(1); // parentNode = parentNode || document; // var nodeList = []; // var allNodes = parentNode.getElementsByTagName('*'); // var pattern = new RegExp('(^|\\s+)' + className + '($|\\s+)');//方法一 // for (var i = 0; i < allNodes.length; i++) { // if (pattern.test(allNodes[i].className)) { // nodeList.push(allNodes[i]); // } // } // return nodeList; // } // } // function getByClassName(className, parentNode) { // if (document.getElementsByClassName) { // return document.getElementsByClassName(className); // } else {console.log(1); // parentNode = parentNode || document; // var nodeList = []; // var allNodes = parentNode.getElementsByTagName('*'); // for (var i = 0; i < allNodes.length; i++) { // if (allNodes[i].className === className) { // nodeList.push(allNodes[i]); // } // } // return nodeList; // } // } //前瞻性匹配 // var str = 'java'; // var pattern = /java(?=script)/; //如果后面是script就匹配java // console.log(pattern.exec(str)); var str = 'javasda'; var pattern = /java(?!script)/;//如果后面不是script就匹配java console.log(pattern.exec(str));</script></body></html>
RegExp实例方法
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8" /><title>RegExp对象</title></head><body><script> // /js/ // new RegExp('js') // var className = 'box'; // new RegExp(className) // console.log(new RegExp('\\b')); //注意转义字符要双重转义 // /\\/ // new RegExp('\\\\') //等同于 /\\/ 要双倍 // RegExp实例方法 // var pattern = /js/; // var pattern = new RegExp('js'); // pattern.test pattern.exec // var str = 'js js js'; // var pattern = /js/; // console.log(pattern.exec(str)); // console.log(pattern.exec(str)); // console.log(pattern.exec(str)); // console.log(pattern.exec(str)); // var str = 'js js js'; // var pattern = /js/g; // console.log(pattern.exec(str)); // console.log(pattern.exec(str)); // console.log(pattern.exec(str)); // console.log(pattern.exec(str)); // console.log(pattern.exec(str)); // pattern.lastIndex //匹配上的字符下一个位置 // var str = 'js js js'; // var pattern = /(j)s/; // console.log(pattern.exec(str)); // console.log(pattern.exec(str)); // console.log(pattern.exec(str)); // console.log(pattern.exec(str)); // var str = 'js js js'; // var pattern = /(j)s/g; // console.log(pattern.exec(str)); // console.log(pattern.exec(str)); // console.log(pattern.exec(str)); // console.log(pattern.exec(str)); // var str = '1.js 2.js 3.js'; // var pattern = /js/g; // var total = 0, // match = '', // result;//每次执行exec只返回找到的一个 所以需要循环 // while ((result = pattern.exec(str)) != null) { // total++; // match += '第' + total + '个匹配到的是:' + result[0] + ', 它的位置是:' + result.index + '\n'; // } // match += '共找到' + total + '处匹配\n'; // console.log(str); // console.log(match); // var str = 'js js js'; // var pattern = /js/g; // console.log(pattern.test(str)); // console.log(pattern.test(str)); // console.log(pattern.test(str)); // console.log(pattern.test(str)); // console.log(pattern.test(str)); // var pattern = new RegExp('a\\nb') // console.log(pattern.toString()); // console.log(pattern.toLocaleString());//和上面的tostring类似 用不上 // console.log(pattern.valueOf() === pattern);//返回正则表达式本身 // RegExp实例属性 // var str = 'js js js'; // var pattern = new RegExp('\\b', 'i'); // console.log(pattern.ignoreCase);//判断一下前面有没有i // console.log(pattern.global); // console.log(pattern.multiline); //这三个返回布尔值 // console.log(pattern.source);//和tostring类似 这一组用处都不大 // console.log(pattern.lastIndex); // var str = 'js js js'; // var pattern = /js/; // console.log(pattern.lastIndex); // pattern.test(str); // console.log(pattern.lastIndex); // pattern.test(str); // console.log(pattern.lastIndex); // pattern.test(str); // console.log(pattern.lastIndex); // pattern.test(str); // console.log(pattern.lastIndex); // pattern.test(str); // console.log(pattern.lastIndex); // var str = 'js js js'; // var pattern = /js/g; // console.log(pattern.lastIndex); // pattern.test(str); // console.log(pattern.lastIndex); // pattern.test(str); // console.log(pattern.lastIndex); // pattern.test(str); // console.log(pattern.lastIndex);//匹配不到了就重新开始 // pattern.test(str); // console.log(pattern.lastIndex); // pattern.test(str); // console.log(pattern.lastIndex); // 构造函数属性 不常用 // var str = 'js js js'; // var pattern = /(j)s/; // pattern.exec(str); // console.log(RegExp.input); // console.log(RegExp.$_); // 字母、_、$开头,后面字母、_、$、数字 // console.log(RegExp['$_']); // console.log(RegExp.lastMatch); // console.log(RegExp['$&']); // console.log(RegExp.leftContext); // console.log(RegExp['$`']); // console.log(RegExp.rightContext); // console.log(RegExp["$'"]); // console.log(RegExp.lastParen); // console.log(RegExp["$+"]); // exec // /\1\2/ // console.log(RegExp.$1); </script></body></html>
string中操作正则表达式的方法
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8" /><title>String对象中与正则表达式相关的方法</title></head><body><script> // var str = 'html js js'; // var pattern = /js/g; // console.log(str.search(pattern));//没找到返回-1 返回找到的位置 不用加g也可以 // var str = 'html js js'; // console.log(str.search('js'));//会自己转为正则表达式 // var str = 'js js js'; // var pattern = /(j)s/; // console.log(str.match(pattern)); js j // var str = 'js js js'; // var pattern = /(j)s/g; // console.log(str.match(pattern)); js js js // match VS exec//match 在非全局匹配的情况下才会返回分组中匹配的内容 全局匹配只能匹配到所有匹配到的字符 // var str = '1.js\n2.js\n3.js'; // var pattern = /js/m; // console.log(str); // console.log(str.match(pattern));//m要配合g // var str = '1.js\n2.js\n3.js'; // var pattern = /js/mg; // console.log(str); // console.log(str.match(pattern)); // var str = '1.js\n2.js\n3.js'; // var pattern = /js$/mg;//不加m只匹配到最后一个js // console.log(str); // console.log(str.match(pattern)); // var str = 'js1\njs2\njs3'; // var pattern = /^js/mg; // console.log(str); // console.log(str.match(pattern)); // var str = 'html,css,js'; // console.log(str.split(',')); // var str = 'html,css,js'; // var pattern = /,/g; // console.log(str.split(pattern)); // var str = 'html , css , js'; // var pattern = /\s*,\s*/; // console.log(str.split(pattern)); // var str = 'I love js js'; // console.log(str.replace('js', 'html')); // var str = 'I love js js'; // var pattern = /js/g; // console.log(str.replace(pattern, 'html')); // var str = '1111-11-11'; // var pattern = /-/g; // console.log(str.replace(pattern, '.')); // var str = 'I love js'; // var pattern = /(js)/; // document.write(str.replace(pattern, '<strong style="color: red;">$1</strong>'));//$1表示第一个分组 // var str = '中国军队和阿扁一起办证'; // var pattern = /国军|阿扁|办证/g; // console.log(str.replace(pattern, '*')); // var str = '中国军队和阿扁一起办证'; // var pattern = /国军|阿扁|办证/g; // console.log(str.replace(pattern, function ($0) {//随便用一个字符串接受 这里用的$0 // // console.log($0); // var result = ''; // for (var i = 0; i < $0.length; i++) { // result += '*'; // } // return result; // }));</script></body></html>
常用的正则表达式
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8" /><title>常用的正则表达式</title></head><body><script> // 1.QQ // 全是数字 // 首位不能为0 // 最少5位(10000) // 目前最多11位? // /^[1-9]\d{4,10}$/ 这里不是为了匹配qq号 而是验证qq号是否符合规则 // /^[1-9]\d{4,}$/ 不设置最多位数 // 2.昵称 // 中、英文、数字以及下划线 // 2-18位 // /^[\u4e00-\u9fa5a-zA-Z0-9_]{2,18}$/ // /^[\u4e00-\u9fa5\w]{2,18}$/ // 3.密码 // 6-16位 // 不能用空白字符\s // /^\S{6,16}$/ // /^[\w~!@#$%^\[\]]{6,16}$/ 这里是把所有允许输入的字符都包括进来 // 4.去除字符串首尾的空白字符 // var str = ' Alex '; // var pattern = /^\s+/; // console.log('|' + str.replace(pattern, '') + '|'); // var str = ' Alex '; // var pattern = /\s+$/; // console.log('|' + str.replace(pattern, '') + '|'); // var str = ' Alex '; // var pattern = /^\s+|\s+$/g; 方法一 // console.log('|' + str.replace(pattern, '') + '|'); // var str = ' Alex '; // var pattern1 = /^\s+/; // var pattern2 = /\s+$/; 方法二 性能不好 // console.log('|' + str.replace(pattern1, '').replace(pattern2, '') + '|');// function trim(str) { 封装一个方法// return str.replace(/^\s+/, '').replace(/\s+$/, '');// }// trimLeft trimRight 可以细分一下功能// var str = ' Alex ';// console.log('|' + trim(str) + '|'); // 5.转驼峰- // css: background-color: red; // js: elem.style.backgroundColor = 'red'; // jquery: $(elem).css('background-color', 'red'); // var str = 'background-color'; // var pattern = /-([a-z])/gi; // console.log(str.replace(pattern, function (all, letter) { // return letter.toUpperCase(); // })); // function toCamelCase(str) { // return str.replace(pattern, function (all, letter) { // return letter.toUpperCase(); // }) // } // all,letter都是参数。all用来传递正则匹配到的所有字符。letter用来传递正则中小括号内匹配到的字符。 // 6.匹配HTML标签 // var str = '<p class="odd" id="odd">123</p>'; // var pattern = /<\/?[a-zA-Z]+(\s+[a-zA-Z]+=".*")*>/g; // console.log(str.match(pattern)); // var str = '<p class="odd" id="odd">123</p>'; // var pattern = /<[^>]+>/g; // console.log(str.match(pattern));//下面的特例不能用上面的方法 // var str = '<input type="text" value=">" name="username" />'; // var pattern = /<(?:[^"'>]|"[^"]*"|'[^']*')*>/g;//看成两部分 引号外和引号内用 或 连接 // console.log(str.match(pattern)); // var str = '<input type="text" value=">" name="username" />'; // var pattern = /<(?:[^"'>]|(["'])[^"']*\1)*>/g; //看成<p> <\1> // console.log(str.match(pattern)); // 7.邮箱 // alex@yahoo.com.cn // alex_1@yahoo.com.cn // alex_1.a-sdasd.asdasdas.com@yah-o_o.com.adasdsd.cn // /(?:\w+\.)*\w+@(?:\w+\.)+[a-z]/i // /^[a-z0-9]+(?:[._-][a-z0-9]+)*@[a-z0-9]+(?:[._-][a-z0-9]+)*\.[a-z]{2,4}$/i // 8.URL // (协议:\/\/)主机名(:端口号)(/路径) //协议可有可无 主机名是在端口号: 和路径/之前// ftp|http|https|mailto|file:/// // /^(https?:\/\/)?([^:\/]+)(:\d+)?(\/.*)?$/ 这里是只考虑了http或者https的协议 // 匹配主机名 // /[^:\/]+/ // -www.-imos-oc.casfasf.sadasd.co-m //不能以-开头结尾 // ai // /[a-z0-9]|[a-z0-9][-a-z0-9]*[a-z0-9]/i // /^([a-z0-9]\.|[a-z0-9][-a-z0-9]*[a-z0-9]\.)*(com|edu|gov|net|org|[a-z]{2})$/i // /^([a-z0-9]\.|[a-z0-9][-a-z0-9]*[a-z0-9]\.)*([a-z]+)$/i // var regexp = { // 'chinese': /[\u4e00-\u9fa5]/, // // 'qq': /^[1-9]\d{4,}$/, // .... // }; // regexp.qq</script></body></html>
阅读全文
0 0
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- Unable to resolve host
- js-history(微信端)
- 12 图形用户接口
- Javascript 实现的数独解题算法网页实例
- Mybatis的多对一,一对多
- 正则表达式
- sql触发器(trigger)
- JAVA 文件列表器
- jvm远程调试
- shell case 语句简单菜单
- 基于FFmpeg的YUV多图像拼接方法(附代码)
- 基于前后端分离的身份认证方式——JWT
- FragmentTabAdapter分类浏览界面代码实例效果
- matplotlib