100分的正则表达式
100分求一个的正则表达式请求高手帮忙写一个或者两个正则表达式条件1,以$开头,空格或者回车键结尾2,或者,
100分求一个的正则表达式
请求高手帮忙写一个或者两个正则表达式
条件
1,以$开头,空格或者回车键结尾
2,或者,以#foreach开头,半个括号)结尾
3,一个关键字 #end
例子
$name $title
#foreach($i in $test)
$i.name
#end
如果能用一个正则同时能满足以上两个请求的话,请给一个正则表达式,
如果一个满足不了,就给两个正则表达式吧。
注:如果对java熟悉的话,其实上面就是velocotiy的匹配规则
js的IQ不够,请大牛帮忙,非常感谢。
[解决办法]<html>
<head>
<script type='text/javascript'>
window.onload = function() {
var reg = /^(?:\$
[解决办法]
#foreach).*(?:\n+
[解决办法]
\r
[解决办法]
\))$
[解决办法]
#end/g;
var str = "";
var div = document.getElementById('str');
str = div.innerHTML;
var b = reg.test(str);
alert(b);
}
</script>
</head>
<body>
<div id='str'>
$name $title
#foreach($i in $test)
$i.name
#end
</div>
</body>
</html>
[解决办法]/\$.+?[,\s\r\n]
[解决办法]#foreach.+?)
[解决办法]#end/ig
[解决办法]/\$.+?[,\s\r\n]
[解决办法]#foreach.+?\)
[解决办法]#end/
[解决办法] var reg = /^(?:\$
[解决办法]#foreach).*(?:\s+
[解决办法]\r
[解决办法]\))$
[解决办法]#end/g;
[解决办法]var reg=/^((\s*\$\S+\s*)
[解决办法]#foreach\(\$\w+\s*in\s*\$\w+\)[\s\S]+#end)+$/g;
如果你为做模板,就把关键字,变更替换成Java语言就行了
[解决办法]s = '$name $title\
\
#foreach($i in $test)\
$i.name\
#end';
document.write(s.match(/#[^)]+\)?
[解决办法]
\$[\w.]+/g));
$name,
$title,#foreach($i in $test),
$i.name,#end
1,
以$开头,空格或者回车键结尾2,以#开头,半个括号)结尾
3,一个关键字 #end
[解决办法]
这个#foreach 和#end没有匹配到。。。。。
请高手再修改下,谢谢了。
var reg=/^((\s*\$\S+\s*)
[解决办法]
#foreach\(\$\w+\s*in\s*\$\w+\)[\s\S]+#end)+$/g;
如果你为做模板,就把关键字,变更替换成Java语言就行了
不知你怎么调用的,我测试可以呀
reg=/^((\s*\$\S+\s*)
[解决办法]#foreach\(\$\w+\s*in\s*\$\w+\)[\s\S]+#end)+$/g;
alert( str.match(reg))
alert( reg.test(str))
[解决办法]s = '$name $title\
#aaa\
#foreach($i in $test)\
$i.name\
#end';
document.write(s.match(/#foreach[^)]+\)?
[解决办法]
#end
[解决办法]
\$[\w.]+/g));