脚本宝典收集整理的这篇文章主要介绍了正则表达式,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
正则表达式的内容放在两个反斜杠之间,正则表达式由普通字符和元字符组成 普通字符:又称字面量:字母、数字、中文字符等;(目前都用字母、数字) 元字符:在模式的上下文中具有特殊的意义:/ | ( ){}[] ^ $ * + ? .
比如:模式:/snow./ 匹配的字符串:“snowy”、“snown”等; 对于模式/3.4/与/3.4/的区别: 模式/3.4/ 中的小数点 可以匹配任何单个字符,/3.4/ 中的小数点 就单纯是普通的小数点,就代表3.14
格式:把需要的字符放到方括号中;
/[^exam]/
可以匹配除了e、x、a、m之外的所有字符;名称:d 等价模式:[0-9] 匹配的内容:一个数字
名称:D 等价模式:[^0-9] 匹配的内容:一个非数字
名称:w 等价模式:[A-Za-z0-9_] 匹配的内容:一个单字字符
名称:W 等价模式:[^A-Za-z0-9_] 匹配的内容:一个非单字字符
名称:s 等价模式:[rtnf] 匹配的内容:一个空白字符
名称:S 等价模式:[^rtnf] 匹配的内容:一个非空白字符
模式/xy{3}z/匹配"xyyyz" ; /u{2,4}/匹配"uu" "uuu" "uuuu" ; /u{2,}/匹配"uu"、"uuu"等;
匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 、 "does" 中的 "does" 、 "doxy" 中的 "do" 。 ? 等价于 {0,1}。
runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 号代表前面的字符必须至少出现一次(1次或多次)。
runoo*b,可以匹配 runob、runoob、runoooooob 等,* 号代表前面的字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。
colou?r 可以匹配 color 或者 colour,? 问号代表前面的字符最多只可以出现一次(0次、或1次)。
runoo*b 中的 ,简单的说就是表示任何字符串的意思。如果要查找字符串中的 * 符号,则需要对 * 进行转义,即在其前加一个 ,runo*ob 匹配字符串 runoob。
主要用于文本的模式匹配,包括文本的查找、替换和格式化; JS中模式匹配有两种方式: 一种是基于RegExp类; 一种是基于String类;
<script>
var str="Hi,High,History.";
console.log(str.search(/Hi/)) ;//0
var str="ii,High,History.";
console.log(str.search(/Hi/)) ;//3
</script>
<script>
var str="snow snows snowy snowing snowed";
console.log(str.replace(/snow/,"rain"));//rain snows snowy snowing snowed
//若模式后有g,则String对象中每个匹配的子字符串都将被替换;
var str="snow snows snowy snowing snowed";
console.log(str.replace(/snow/g,"rain"));
//rain rains rainy raining rained
</script>
<script>
/*若正则表达式中不带有g,
数组的第一个元素为字符串中第一个与模式匹配的子字符串,
数组剩余的元素为与模式括号中的部分匹配的元素;
*/
var str="snow snows snowy snowing snowed sow aa bb";
console.log(str.match(/snow/));
//["snow", index: 0, input: "snow snows snowy snowing snowed sow aa bb", groups: undefined]
// 2. 若正则表达式中带有g,数组为字符串中所有与模式匹配的子字符串;
var str="snow snows snowy snowing snowed sow aa bb";
console.log(str.match(/snow/g));
//显示:(5) ["snow", "snow", "snow", "snow", "snow"]
</script>
JS中正则表达式不是字符串类型,而是预定义类型RegExp **步骤:
要求: 通过表单输入你的家庭电话,点击验证按钮测试一下格式是否正确; 如果正确弹出警告框: It is a legal phone number! 不正确弹出警告框: It is not a legal phone number!
分析:
<body>
请输入你的家庭电话:<input type="text" name="number" id="number"/><br/>
<input type="button" value="验证" onclick="testPhoneNumber()"/>
<script>
function testPhoneNumber(){
var phone=document.getElementById("number").value;
var ok=/^d{3,4}-d{7,8}$/.test(phone);
if(ok)
{alert("It is a legal phone number!");}
else{ alert("It is not a legal phone number!");
}
}
</script>
</body>
Jj ↩︎
以上是脚本宝典为你收集整理的正则表达式全部内容,希望文章能够帮你解决正则表达式所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。