日期:2014-05-16  浏览次数:20469 次

正则表达式?
如何判断Textbox中必须包含三个下划线___?


------解决方案--------------------
<script type= "text/javascript ">
var a= "a___ ___ ___b "
var b= "a___ ___b "
if(/___ ___ ___/.test(a)){
alert( "ok ")
}else{
alert( "err ")
}
if(/___ ___ ___/.test(b)){
alert( "ok ")
}else{
alert( "err ")
}
var aa= "a___ "
var bb= "a__b "
var cc= "a__b_ "
if(/___/.test(aa)){
alert( "ok ")
}else{
alert( "err ")
}
if(/___/.test(bb)){
alert( "ok ")
}else{
alert( "err ")
}
if(/___/.test(cc)){
alert( "ok ")
}else{
alert( "err ")
}
</script>
------解决方案--------------------
function _0009(str)
{
return /^[^_]*(?:_{3}[^_]*){3}$/.test(str);
}

alert(_0009( "___ ___ ___ "));
alert(_0009( "___ ___ ___ ___ "));
alert(_0009( "___ __ ___ "));
alert(_0009( "___ ___ "));
alert(_0009( "_______ "));
------解决方案--------------------
不知道楼主的意思是不是单个不要超过三个,也不要少于三个,如果是那样的话,可以使用
<script language=javascript>
function _0009(str)
{
return (str.replace(/___/g, " ").indexOf( "_ ")==-1)
}

alert(_0009( "___ ___ ___ "));
alert(_0009( "___ ___ ___ ___ "));
alert(_0009( "___ __ ___ "));
alert(_0009( "___ ___ "));
alert(_0009( "_______ "));
</script>
------解决方案--------------------
(____+?)|(_+?___)|(((? <=[^_])|^)_{1,2}(?=[^_]+?))
用这个试试,如果返回结果了。就是出现了小于3或大于3的_就会有结果
------解决方案--------------------
function _0009(str)
{
return /(____+?)|(_+?___)|(((? <=[^_])|^)_{1,2}((?=[^_]+?)|$))/.test(str);
}

alert(_0009( "___ ___ ___ "));
alert(_0009( "___ ___ ___ ___ "));
alert(_0009( "___ __ ___ "));
alert(_0009( "___ ___ "));
alert(_0009( "_______ "));


格式我不知道对不对,我不懂jsp。
------解决方案--------------------
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※以下是引用17楼 wuyazhe(经常答错,欢迎指正。) 在2007-07-21 10:01:22 的发言:
──────────────────────────────────────────
function _0009(str)
{
return /(____+?)|(_+?___)|(((? <=[^_])|^)_{1,2}((?=[^_]+?)|$))/.test(str);
}
alert(_0009( "___ ___ ___ "));
alert(_0009( "___ ___ ___ ___ "));
alert(_0009( "___ __ ___ "));
alert(_0009( "___ ___ "));
alert(_0009( "_______ "));
格式我不知道对不对,我不懂jsp。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
这是JAVASCRIPT

你写的正则逻辑好乱. ____+?和_+?___在逻辑上讲得通吗?另外JS不支持负向声明,? <=是不能用的.

其实这个正则并不难,只是楼主没有表达清楚.我也不知道他真正想要的是什么!