可以这么写:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<html xmlns="
<head>
<title>匹配正则表达式</title>
<meta http-equiv="Content-Type" content="text/html charset=utf-8" />
<script type="text/javascript">
function t1() {
var cont = document.getElementById('cont')
var cv = cont.value
var reg = /<a[\s]+[^>]+>([^<>]+)<\/a>/gi // 正则表达式
alert(cv.replace(reg,''))
}
</script>
<style type="text/css">
textarea {
width:400px
height:200px
}
</style>
</head>
<body>
<p>
<textarea id="cont"></textarea>
</p>
<p><input type="button" value="把链接换成空链接" onclick="t1()" /></p>
</body>
</html>
需要准备的材料分别有:电脑、html编辑器、浏览器。
1、首先,打开html编辑器,新建html文件,例如:index.html。
2、在index.html中的<script>标签,输入js代码:。
var reg = /^[0-9,]*$/
var a = '1231,456,346,', b = '34sda'
test(a)test(b)
function test(text) {
if (reg.test(text)) {
$('body').append(text + '符合</br>')
} else {
$('body').append(text + '不符合</br>')
}
}
3、浏览器运行index.html页面,此时会打印出该正则表达式对“1231,456,346,”和“34sda
”的校验结果。
给你个例子,你自己看看吧。平衡组/递归匹配
如何把xx <aa <bbb><bbb>aa>yy这样的字符串里,最长的配对的尖括号内的内容捕获出来?
这里需要用到以下的语法构造:
(?'group') 把捕获的内容命名为group,并压入堆栈(Stack)
(?'-group') 从堆栈上弹出最后压入堆栈的名为group的捕获内容,如果堆栈本来为空,则本分组的匹配失败
(?(group)yes|no) 如果堆栈上存在以名为group的捕获内容的话,继续匹配yes部分的表达式,否则继续匹配no部分
(?!) 零宽负向先行断言,由于没有后缀表达式,试图匹配总是失败
我们需要做的是每碰到了左括号,就在压入一个"Open",每碰到一个右括号,就弹出一个,到了最后就看看堆栈是否为空--如果不为空那就证明左括号比右括号多,
那匹配就应该失败。正则表达式引擎会进行回溯(放弃最前面或最后面的一些字符),尽量使整个表达式得到匹配。
平衡组一个匹配嵌套的<div>标签:
<div[^>]*>[^<>]*(((?'open'<div[^>]*)[^<>]*)+(?'-open'</div>)[^<>]*)+)*(?(open)(?!))</div>