求一个正则表达式的问题 小问一下,有谁看明白这小子想干什么的?麻烦告诉我啊用str.split()可以实现你还用正则干嘛? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这里我只是举一个例子,因为分割符不是固定的,所以我必须要用正则表达式来处理。像刚才的例子在实际分割的时候,reg=new RegExp("\\\s*,\\\s*"),直接传字符串参数到split函数是不能得到正确结果的。 但是"lin,,s,,"用正则表达式做参数返回的数组result的结果是:result[0]=lin,result[1]=s而我要得到的结果是result[0]=lin,result[1]=(空字符),result[2]=s…………表达能力不大好,不好意思。 呵呵,我再解释一下。比如,输入字符串是str="l,,,i,"如果用 var res= str.split(",");得到的res数组的内容是:res[0]="l",res[1]="",res[2]="",res[3]="i",res[4]=""如果用var reg = new RegExp(","),res = str.split(reg)得到的res数组内容是:res[0]="l",res[1]="i"。然后我想请教大家的是如何既用第二种方法,又可以得到第一种方法的结果。谢谢大家了。 空值是在的,只是你直接弹出看不太清楚<script language=javascript> var str="lin,,,,ss,sss,,," strArray=str.split(",") for(var i=0;i<strArray.length;i++) { alert(strArray[i]) } </script> 明白你的意思了,的确很怪,恐怕这是split函数里面去掉的吧。如果你一定要这么用,把split函数重写下吧 感觉没什么实际意义,最好还是用你的第一种方法<script language=javascript> var _split=String.prototype.split; String.prototype.split=function() { var ra=arguments[0] re=/\/(.+?)\// alert(ra.toString()) re.test(ra.toString()); tempArray=_split.call(this,RegExp.$1) return tempArray; } var str="lin,,,,ss,sss,,," re=new RegExp(",","g") strArray=str.split(re) for(var i=0;i<strArray.length;i++) { alert(strArray[i]) } </script> 贪婪和非贪婪其实就是匹配是否都匹配,举个例子<a>dasd</a><a>sadsdf</a>如果非贪婪则匹配<a>dasd</a>贪婪则都匹配 估计楼主需要的是:"1, 2,, 3, 4,".split(/[, ]/g)得到的array有9项,而不是实际得到的1,2,3,4好像有些麻烦 String.prototype._split=function(re){ var str = this.replace(/\"/g,"\\\"").replace(re,"\",\""); str = "[\""+str+"\"]"; return eval(str);}alert("lin,,,,ss,sss,,,"._split(/,/g).join("->")); to hbhbhbhbhb1021(天外水火(我要多努力)) 上面的例子只是我程序中可能出现的一种情况,还有一类情况是:"lin", "s","" ,"c",遇到这种情况的时候我必须要以"\\\s*,\\\s*"来做分割符,不用正则的话,我不知道该怎么表达逗号和分号之间带有空格或者tab的情况 先用replace函数把你的这个"\\\s*,\\\s*"替换成“,”号,然后再用split分 这是其中一种情况:reg = new RegExp("\\\s*,\\\s*","g");result = str.split(reg);不用正则的话好象实现不了这样的分割 你的是用JavaScript吧 hbhbhbhbhb1021(天外水火(我要多努力)) 2006-8-20 23:24:37 已经解答了你的问题了呀! 但是那是没有空格的情况啊,如果以reg = new RegExp("\\\s*,\\\s*","g");来分割就不行了哦,hbhbhbhbhb1021(天外水火(我要多努力)) 写个可以适应上面情况的函数吧,可以单独再开一贴给你100分,多谢了。 为表示诚意我先结贴然后再开一贴请hbhbhbhbhb1021(天外水火(我要多努力)) 帮忙 js 表单验证 字符集 在dreamweaver 2004中,会员登录功能彻底的实现 我现在在改梅老大的MzTreeView10,有许多问题,谢谢回答 js新手求助 研究蜘蛛网选座页面JS问题! 一个关于框架页面frame之间JS函数调用的问题 焦點問題??? 请问编写调试JavaScript用什么软件比较好? 如何把一组广告插入到包含文件内? 我要找个师傅。9196852 这个效果怎么做啊??? 宽度问题<font onclick="alert(this.style.width)" > sdfsdffff000000000000...</font>
而我要得到的结果是result[0]=lin,result[1]=(空字符),result[2]=s…………
表达能力不大好,不好意思。
比如,输入字符串是str="l,,,i,"
如果用 var res= str.split(",");
得到的res数组的内容是:res[0]="l",res[1]="",res[2]="",res[3]="i",res[4]=""如果用var reg = new RegExp(","),res = str.split(reg)得到的res数组内容是:res[0]="l",
res[1]="i"。然后我想请教大家的是如何既用第二种方法,又可以得到第一种方法的结果。
谢谢大家了。
<script language=javascript>
var str="lin,,,,ss,sss,,,"
strArray=str.split(",")
for(var i=0;i<strArray.length;i++)
{
alert(strArray[i])
}
</script>
<script language=javascript>
var _split=String.prototype.split;
String.prototype.split=function()
{
var ra=arguments[0]
re=/\/(.+?)\//
alert(ra.toString())
re.test(ra.toString());
tempArray=_split.call(this,RegExp.$1)
return tempArray;
}
var str="lin,,,,ss,sss,,,"
re=new RegExp(",","g")
strArray=str.split(re)
for(var i=0;i<strArray.length;i++)
{
alert(strArray[i])
}
</script>
<a>dasd</a><a>sadsdf</a>
如果非贪婪则匹配<a>dasd</a>
贪婪则都匹配
var str = this.replace(/\"/g,"\\\"").replace(re,"\",\"");
str = "[\""+str+"\"]";
return eval(str);
}
alert("lin,,,,ss,sss,,,"._split(/,/g).join("->"));
上面的例子只是我程序中可能出现的一种情况,还有一类情况是:"lin", "s","" ,"c"
,遇到这种情况的时候我必须要以"\\\s*,\\\s*"来做分割符,不用正则的话,我不知道该怎么表达逗号和分号之间带有空格或者tab的情况
reg = new RegExp("\\\s*,\\\s*","g");
result = str.split(reg);
不用正则的话好象实现不了这样的分割
已经解答了你的问题了呀!
来分割就不行了哦,
hbhbhbhbhb1021(天外水火(我要多努力)) 写个可以适应上面情况的函数吧,可以单独再开一贴给你100分,多谢了。