正则表达式判定空格 var a="a b c"var b=/^a\s{0,5}b\s{0,5}c$/if(b.test(a)){ alert("true")}else{alert("false")} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的要求说的不是很明确,这个是abc的顺序一定,a必须在开头,c必须在最后 ,2端有空格也不对 <script type="text/javascript">//<![CDATA[ var str='a bc,ab c,a b c'; var str1='abc' var re=new RegExp('a[ ]{0,5}b[ ]{0,5}c[ ]{0,5}','i'); if(re.test(str))alert('ok'); if(re.test(str1))alert('ok');//]]></script> ooo...楼楼上的 \s 不只是空格呀. /(?:(?:a|b|c)[ ]{0,5})*/i //abc顺序不一定 可有可无/(?:(?:a|b|c)[ ]{0,5}){3}/i //.....随便写的/(a|b|c)[ ]{0,5}(?!\1)(a|b|c)[ ]{0,5}(?!\1|\2)(a|b|c)/i //abc无重复 无限制顺序(不用后续查询就不知道怎么写了)String.prototype.mm = function(){ var rule = /(a|b|c)[ ]{0,5}(?!\1)(a|b|c)[ ]{0,5}(?!\1|\2)(a|b|c)/i; if(rule.test(this)) return this.match(rule)[0]; else return "NoMatch";}alert("a b c".mm());alert("c b a".mm()); abc|a\s{0,5}bc|ab\s{0,5}c|a\sb\s{0,4}c|a\s{0,2}b\s{0,3}c|a\s{0,3}b\s{0,2}c|a\s{0,4}b\sc已调试 没有必要局限在只用一个正则表达式上了,换个思路,把两个判断分成两句代码来做就简单了: var str='a bc,ab c,a b c'; var re=/a\s*b\s*c/g, mm; if(mm=str.match(re)) { for(var i=0; i<mm.length; i++) { if(mm.length<8){alert(true); break;} } } 呵呵 没什么 我只是测试下自己的正则表达式能力 这东西太久不用会忘的另外\s好像会匹配换行,如果只是单纯空格的话不要用\s的好.PS:我搞JS开发都完全忽略IE5.5~6.0以外的浏览器 顾及太多会大大影响开发速度和开发思路希望FF出兼容6.0的版本,要不我看FF在企业级应用上没什么前途呵呵 好像说多了很多废话 大家当我放屁好了 :meizz(梅花雪的最直接有效。 <script LANGUAGE='javascript'> var a="a b c"; var msg = "不匹配"; if(/a([ ]*)b([ ]*)c/.test(a)) { if(RegExp.$1.length+RegExp.$2.length<=5) msg = "匹配"; } alert(msg);</script> javascript 真是难懂 对象不用显示的赋值和实例化都可以用if(/a([ ]*)b([ ]*)c/.test(a)){if(RegExp.$1.length+RegExp.$2.length<=5)msg = "匹配";}就这样 对象RegExp居然被实例了 让不会的人读起来更困难了看来我要变成骨灰还得继续炼..... 不要带着其它语言的观点来学JS,JS语言本身自成一派。比如在其它语言里想对某个对象进行扩充就得先继承它再在自己的类里写扩展,而在JS里可以直接进行原型扩展的;比如JS可以把字符串或者对象当作判断的条件来运行,这在其它的语言里是根本不可理喻的。 http://www.igfire.com/gold.asp WoW goldhttp://www.igfire.com/wowus WoW power levelinghttp://www.igfire.com/woweu.asp WoW power levelinghttp://www.igfire.com WoW power levelinghttp://www.igfire.com WoW power leveling 恩 大侠说得对 不能以其他语言的思维应用在JS上面的确 JS是一个以范类为主要载体的语言 只要抓住Object才能抓住根本. 看来不是什么东西都能理想化. 另外我想问下 JS对原型的扩展是引用对象 还是另外创建一个崭新的对象? 问问用来作为系统资源使用量的参考 String.prototype.trim=function(){ return this.replace(/(^[\s\t ]+)|([ \s\t]+$)/g, "");};alert(" name : gzdiablo ".trim()); //原型当然就是原型,不过是崭新的对象 所说的扩展原来就是prototype 呵呵 不好意思我老是搞混这些专业名词 用jQuery问题 opera,谷歌浏览器关于javascript的问题 js对象不支持此属性或方法 新手提问 求一段JS代码,框架中打开超链方面的技术 你个兼职小程序员的困惑 如何判断一个字符串里只有数字和逗号,而且数字之间以","分割?求正则表达式及javascript代码 有谁告诉我window.innerwidth和window.innerheigth的用法 请问,怎样在JS中比较两个时间串的大小呢? 怎么告诉后台我的点击提示框 innerText的相关问题 时间问题
//<![CDATA[
var str='a bc,ab c,a b c';
var str1='abc'
var re=new RegExp('a[ ]{0,5}b[ ]{0,5}c[ ]{0,5}','i');
if(re.test(str))alert('ok');
if(re.test(str1))alert('ok');
//]]>
</script>
/(?:(?:a|b|c)[ ]{0,5}){3}/i //.....随便写的/(a|b|c)[ ]{0,5}(?!\1)(a|b|c)[ ]{0,5}(?!\1|\2)(a|b|c)/i //abc无重复 无限制顺序(不用后续查询就不知道怎么写了)
String.prototype.mm = function(){
var rule = /(a|b|c)[ ]{0,5}(?!\1)(a|b|c)[ ]{0,5}(?!\1|\2)(a|b|c)/i;
if(rule.test(this))
return this.match(rule)[0];
else
return "NoMatch";
}
alert("a b c".mm());
alert("c b a".mm());
已调试
var re=/a\s*b\s*c/g, mm;
if(mm=str.match(re))
{
for(var i=0; i<mm.length; i++)
{
if(mm.length<8){alert(true); break;}
}
}
另外\s好像会匹配换行,如果只是单纯空格的话不要用\s的好.PS:我搞JS开发都完全忽略IE5.5~6.0以外的浏览器 顾及太多会大大影响开发速度和开发思路
希望FF出兼容6.0的版本,要不我看FF在企业级应用上没什么前途
呵呵 好像说多了很多废话 大家当我放屁好了
的最直接有效。
var msg = "不匹配";
if(/a([ ]*)b([ ]*)c/.test(a))
{
if(RegExp.$1.length+RegExp.$2.length<=5)
msg = "匹配";
}
alert(msg);</script>
{
if(RegExp.$1.length+RegExp.$2.length<=5)
msg = "匹配";
}就这样 对象RegExp居然被实例了 让不会的人读起来更困难了看来我要变成骨灰还得继续炼.....
http://www.igfire.com/gold.asp WoW gold
http://www.igfire.com/wowus WoW power leveling
http://www.igfire.com/woweu.asp WoW power leveling
http://www.igfire.com WoW power leveling
http://www.igfire.com WoW power leveling
的确 JS是一个以范类为主要载体的语言 只要抓住Object才能抓住根本. 看来不是什么东西都能理想化.
另外我想问下 JS对原型的扩展是引用对象 还是另外创建一个崭新的对象? 问问用来作为系统资源使用量的参考
{
return this.replace(/(^[\s\t ]+)|([ \s\t]+$)/g, "");
};alert(" name : gzdiablo ".trim()); //原型当然就是原型,不过是崭新的对象