求一个js正则表达式

来源:百度知道 编辑:UC知道 时间:2024/05/17 06:34:32
程序中为了防止用户输入<script>alert('df')</script>
求一个正则 匹配没有尖括号(<,>)和不能为空
如果全是空格addgrrr你的那个就不行了,麻烦了!

var preg = /^[^<|>]+$/i;

排除空格的话,可以使用一个函数来排除:
function trim(strs) {//自动除去两端空格,将全为空格的字符串替换为空
var preg = /^(\s)+$/i;
if( preg.test(strs) ) return "";
return strs.replace(/^\s*|\s*$/g,"");
}
var s = trim(" abcdefg ");
var preg = /^[^<|>]+$/i;
if( preg.test(s) ) {//若满足表达式
alert('true');
} else {
alert('false');
}

这个应该符合你的要求,试试:
var preg = /(?!\n\t\r)[\s]*(?:(?!(?!\n\t\r)[\s])[^<|>]+)/i;

^ *$|[<>]+

如果匹配返回true,则为空或包含<>

试试这个:^(?!.*[<>].*$)(?!\s*$)