两种写法
//var re = new RegExp('a') //js风格
var re = /a/ //perl风格
var str = 'abcdef'
alert(str.search(re))
忽略大小写 i
var re = new RegExp('a', 'i') //js风格
var re = /b/i //perl风格
实例:挑出字符串里的数字
var str = '33 uu8798 i09 ij--879pp 99'
alert(str.match(/\d+/g))
\d 是代表的是 数字; + 量词表示任意个数; g global,全部都找到。
replace
var re = /a/g
str = 'abcdabcda'
alert(str.replace(re, '0'))
实例:敏感词过滤
<body>
<input type="text" id="txt1">
<input type="button" id="btn" value="过滤">
<script>
var oTxt = document.getElementById('txt1')
var oBtn = document.getElementById('btn')
oBtn.onclick = function(){
var re = /日本|中国/g //过滤词不需要加引号
oTxt.value = oTxt.value.replace(re, '***')
}
</script>
</body>
方括号 [ ]
表示或者
var str = 'apc bpc cpc xpc gpc'
var re = /[agp]pc/g //a或b或g
alert(str.match(re)) //apc gpc
表示范围
var str = 'abc 57 defjh78 djj98 kks--098'
var re = /[0-9]+/g //[0-9]相当于\d
alert(str.match(re))
[a-z] 代表所有的字母 [0-9] 代表数字 [^0-9] 代表排除数字 [^0-9a-z] 代表排除字母和数字
实例:过滤html标签
<body>
<textarea id="txt1" rows="20" cols="50"></textarea>
<input type="button" value="过滤" id="btn">
<script>
var oBtn = document.getElementById('btn')
var oTxt = document.getElementById('txt1')
oBtn.onclick = function(){
//var re = /<.+>/g //表示<>内有若干个任意字符
var re = /<[^<>]+>/g //表示<>内有若干个除了<>的字符
oTxt.value = oTxt.value.replace(re, '')
}
</script>
</body>
转义字符
. 表示任意字符
\d 表示数字相当于[0-9]; \w 表示 英文、数字、下划线相当于[a-z0-9_] ; \s 表示空白字符例如空格、tab等不可打印的字符
\D 表示非数字相当于[^0-9] \W表示非英文、数字、下划线相当于[^a-z0-9_] ; \S表示非空白字符
量词-个数
{n} 表示出现n次; \d{8} 8位数字 [1-9]\d{7} 第一位不为0的8位数字
{n,m}最少n,最多m;[1-9]\d{4,10} 5-11位且第一位不为0的数字
{n,}最少n,不限;
+ 若干个相当于{1,};
? {0,1}表示可以有可以无 (0\d{2,3}-)?[1-9]\d{7}(-\d{1,3})? 固话校验
*{0,}表示可以没有
实例:邮箱格式校验
<input type="text" id="txt">
<input type="button" id="btn" value="校验">
<script>
window.onload = function()
{
var oTxt = document.getElementById('txt')
var oBtn = document.getElementById('btn')
oBtn.onclick = function(){
var re = /^\w+@[0-9a-z]+.[a-z]+$/g //^ $ 行首行尾
if(re.test(oTxt.value)){
alert('符合邮箱格式')
}else{
alert('不符合邮箱格式')
}
}
}
</script>