现有一字符串:
$sumstr='30|31,40|41,50|71';要求输入一数字,就删除该数字对应的一段,具体如下:输入 30 ,则要删除 '30|31,' ,得到 '40|41,50|71'输入 40 , 则要删除 '40|41,' , 得到 '30|31,50|71'输入 50 , 则要删除 ',50|71' , 得到 '30|31,40|41'现在的问题是 逗号 应该怎么处理,求一正则直接匹配。
$sumstr='30|31,40|41,50|71';要求输入一数字,就删除该数字对应的一段,具体如下:输入 30 ,则要删除 '30|31,' ,得到 '40|41,50|71'输入 40 , 则要删除 '40|41,' , 得到 '30|31,50|71'输入 50 , 则要删除 ',50|71' , 得到 '30|31,40|41'现在的问题是 逗号 应该怎么处理,求一正则直接匹配。
解决方案 »
- php中的地址栏中文参数问题
- 同时提交两个表单,一个上传图片,另一个提交图片名称,点击一个submit按钮一同执行
- js代码动态图片效果 定义超链 在线等
- 界面显示不出来,和JS相关,和浏览器相关
- 只打印网页一部分用CSS?
- 页面执行顺序
- 跨域访问怎么做呢,? 访问 json格式的数据, 求教,从昨天一直研究这个,也没弄出来
- 有关select和text的传值问题(不好意思,没有分了),在线等待
- 急需帮助!!!如何向动态产生的<type=file>中赋初值?期待中...
- 怎样鼠标右键弹出菜单
- this 在指定prototype原型时 的疑惑
- 请教大师,如何 function t(obj) {取Radio的value,为何老是错误
$reg='/[,]{0,1}'.$num.'\|[0-9]*/';
这样子匹配不到 30$num='30';
$reg='/'.$num.'\|[0-9]*[,]{0,1}/';
这样子匹配不到 50
<script type="text/javascript">
<!--
function delSection(num){
var str = "30|31,40|41,50|71";
return str.replace(new RegExp(num + "[^\\|]*?\\|"),"");
}
alert(delSection('31'));
//-->
</script>
{
var s='30|31,40|41,50|71';
var except="41";
s=getResult(s,except);
alert(s);
});
/**
*s:要处理的字符串
*except:要除去的元素
*/
function getResult(s,except)
{
var pattern = new RegExp(except);
var arr=s.split(",");//分成数组
var i;
for(i=0;i<arr.length;i++)
{
if(pattern.test(arr[i]))// 找到了匹配,记录下i
{
arr.splice(i,1);//删除那一项
break;
}
}
return arr.toString();
}
function delSection(str, num){
return str.replace(new RegExp("(?:" + num + "\\|\\d+,?)|(?:,?" + num + "\\|\\d+$)"),"");
}
alert('delSection("30|31",30) = ' + delSection("30|31",30)); // == ""
alert('delSection("30|31",40) = ' + delSection("30|31",40)); // == "30|31"
alert('delSection("30|31,40|41",30) = ' + delSection("30|31,40|41",30)); // == "40|41"
alert('delSection("30|31,40|41",40) = ' + delSection("30|31,40|41",40)); // == "30|31"
alert('delSection("30|31,40|41,50|71",30) = ' + delSection("30|31,40|41,50|71",30)); // == "40|41,50|71"
alert('delSection("30|31,40|41,50|71",40) = ' + delSection("30|31,40|41,50|71",40)); // == "30|31,50|71"
alert('delSection("30|31,40|41,50|71",50) = ' + delSection("30|31,40|41,50|71",50)); // == "30|31,40|41"