需求如下:
将一串字符转换为标准的分隔符字符串
如:",,,,a,svv,ss,,v,,v,,,"
转换后:"a,svv,ss,v,v"
js实现代码:
多用于后台中,关键词替换,自动将空格,全角逗号,统一替换为半角逗号,并将多个逗号合并
//供使用者调用 function trim(s){ return trimRight(trimLeft(s)); } //去掉左边的空白 function trimLeft(s){ if(s == null) { return ""; } var whitespace = new String(" tnr"); var str = new String(s); if (whitespace.indexOf(str.charAt(0)) != -1) { var j=0, i = str.length; while (j < i && whitespace.indexOf(str.charAt(j)) != -1){ j++; } str = str.substring(j, i); } return str; } //去掉右边的空白 function trimRight(s){ if(s == null) return ""; var whitespace = new String(" tnr"); var str = new String(s); if (whitespace.indexOf(str.charAt(str.length-1)) != -1){ var i = str.length - 1; while (i >= 0 && whitespace.indexOf(str.charAt(i)) != -1){ i--; } str = str.substring(0, i+1); } return str; } //检查tag的空格 function dotag() { document.form1.tag.value = trim(document.form1.tag.value.replace(new RegExp(',',"gm"),',')); document.form1.tag.value = trim(document.form1.tag.value.replace(new RegExp(' ',"gm"),',')); document.form1.tag.value = trim(document.form1.tag.value.replace(new RegExp(',+',"gm"),',')); }
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
asp.net实现方法如下:
复制代码 代码如下:
/// <summary>
/// 格式化一组如:",,a,s,,,d,c"的字符串为标准的分隔字符串如:"a,s,d,c";
/// </summary>
/// <param name="str">ref 需要格式化的字符</param>
private void strFormat(ref string str)
{
string regexText = ",{2,}";
string[] strArray = Regex.Split(str,regexText);
str = "";
foreach (string strf in strArray)
{
if(strf != "")
{
str += strf + ",";
}
}
//以上代码得到 xx,xxx,x,xx,x, 则需要去掉最后一个逗号 既满足标准分隔符条件
str = str.Substring(0, str.Length - 1);
}
正则表达式引入命名空间:
复制代码 代码如下:
using System.Text.RegularExpressions;