首页 > 编程 > Regex > 正文

一串字符中多个逗号替换为一个 既标准分隔符(正则表达式)

2020-03-16 21:08:25
字体:
来源:转载
供稿:网友
一串字字符中多个逗号转换为一个,既标准分隔符(正则表达式),借助上一篇文章正则表达式快速入门,来完成了这个转换过程
需求如下:

将一串字符转换为标准的分隔符字符串

如:",,,,a,svv,ss,,v,,v,,,"
转换后:"a,svv,ss,v,v"

js实现代码:
多用于后台中,关键词替换,自动将空格,全角逗号,统一替换为半角逗号,并将多个逗号合并

  1.   
  2. <script>  
  3. //供使用者调用  
  4. function trim(s){  
  5. return trimRight(trimLeft(s));  
  6. }  
  7. //去掉左边的空白  
  8. function trimLeft(s){  
  9. if(s == null) {  
  10. return "";  
  11. }  
  12. var whitespace = new String(" /t/n/r");  
  13. var str = new String(s);  
  14. if (whitespace.indexOf(str.charAt(0)) != -1) {  
  15. var j=0i = str.length;  
  16. while (j < i && whitespace.indexOf(str.charAt(j)) != -1){  
  17. j++;  
  18. }  
  19. strstr = str.substring(j, i);  
  20. }  
  21. return str;  
  22. }  
  23. //去掉右边的空白  
  24. function trimRight(s){  
  25. if(s == null) return "";  
  26. var whitespace = new String(" /t/n/r");  
  27. var str = new String(s);  
  28. if (whitespace.indexOf(str.charAt(str.length-1)) != -1){  
  29. var i = str.length - 1;  
  30. while (i >= 0 && whitespace.indexOf(str.charAt(i)) != -1){  
  31. i--;  
  32. }  
  33. strstr = str.substring(0, i+1);  
  34. }  
  35. return str;  
  36. }  
  37. //检查tag的空格  
  38. function dotag()  
  39. {  
  40. document.form1.tag.value = trim(document.form1.tag.value.replace(new RegExp(',',"gm"),','));  
  41. document.form1.tag.value = trim(document.form1.tag.value.replace(new RegExp(' ',"gm"),','));  
  42. document.form1.tag.value = trim(document.form1.tag.value.replace(new RegExp(',+',"gm"),','));  
  43. }  
  44. </script>  
  45. <form name="form1">  
  46. <input name="tag" type="text" id="tag" style="width:300px" value="" onBlur="dotag()">  
  47. </form>  


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; 
 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表