需求是:输入的内容去首尾空格长度不能为0.
内容注意除了空格外可以中文,字母数字,有HTML代码,HTML代码...总之只要去了空格后长度不能为0.
要求是正则表达式,不是length方法
为什么下面的验证能不通过?
function confirmSubmit(){
var _reg = /^\S{1,}$/;
if (window.confirm('您确认要提交编辑吗?')) {
var _check = true;
if (!(_reg.test($.trim($('#name').val())))) {
$('#checkName').html("*长度必须在大于1");
_check = false;
}else{
$('#checkName').html("√");
}
if (!(_reg.test($.trim($('#detail').val())))) {
$('#checkDetail').html("*长度必须在大于1");
_check = false;
}else{
$('#checkDetail').html("√");
}
return _check;
}
return false;
}这里有其他的疑惑,一个_reg能否在同个方法内用两次?我记得JAVA里的正则用过之后要reset的,js里没找到这个方法.
内容注意除了空格外可以中文,字母数字,有HTML代码,HTML代码...总之只要去了空格后长度不能为0.
要求是正则表达式,不是length方法
为什么下面的验证能不通过?
function confirmSubmit(){
var _reg = /^\S{1,}$/;
if (window.confirm('您确认要提交编辑吗?')) {
var _check = true;
if (!(_reg.test($.trim($('#name').val())))) {
$('#checkName').html("*长度必须在大于1");
_check = false;
}else{
$('#checkName').html("√");
}
if (!(_reg.test($.trim($('#detail').val())))) {
$('#checkDetail').html("*长度必须在大于1");
_check = false;
}else{
$('#checkDetail').html("√");
}
return _check;
}
return false;
}这里有其他的疑惑,一个_reg能否在同个方法内用两次?我记得JAVA里的正则用过之后要reset的,js里没找到这个方法.
function check(str){
var re = /^\s*[^\s]+\s*$/g;
return re.test(str);
}alert(check(" "));
alert(check(" a"));
</script>
为什么我的表达式行不通呢?这个test方法到底是什么运算的?按你的表达式应该是符合开头有任意空格+任意字符的字符串.(符合要求)而我的是符合字符串(我已经trim掉空格了)长度大于1的,一样的效果啊,为什么不能验证HIML代码呢?
test方法有必要加g吗?g不是循环查找时才有用吗?
var str = /^\s*\S/;
str.test("要测的字符串");
我的需求中使用一个正则验证两个不同的字符串,所以g是绝对不能加的,加g会依次验证,结果记录进正则的lastindex的相当于两个字符串加起来验证了,不符合需求.
var _reg = /^\s*\S{1,}\s*$/;
if (window.confirm('您确认要提交编辑吗?')) {
var _check = true;
if (!(_reg.test($.trim($('#name').val())))) {
$('#checkName').html("*长度必须在大于1");
_check = false;
}else{
$('#checkName').html("√");
}
reg.lastIndex=0;
if (!(_reg.test($.trim($('#detail').val())))) {
$('#checkDetail').html("*长度必须在大于1");
_check = false;
}else{
$('#checkDetail').html("√");
}
return _check;
}
return false;
}
同意9楼
LZ的表达式把开头和结尾都包进去了,只能匹配连续的非空字符串,HTML代码中间免不了有空格的2楼伴水哥的代码/^\s*\S/
匹配以n(n>=0)个空格开头且包含非空字符的字符串
重点是没有封掉结尾,只要验证了有非空字符就通过了