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\$name,$title,#foreach($i in $test),$i.name,#end
\
#foreach($i in $test)\
$i.name\
#end';
document.write(s.match(/#[^)]+\)?
[解决办法]
\$[\w.]+/g));
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));