我正在尝试清理输入字段客户端。
当前价值
string = 'word, another word,word,,,,,, another word, ,,;
清洁后的期望值
string = 'word,another word,word,another word;
我尝试过的简化版http://jsfiddle.net/zg2e7/362/
答案 0 :(得分:6)
您可以使用
var str = 'word,word,word,,,,,new word, , another word';
document.body.innerHTML = str.replace(/(?:\s*,+)+\s*/g, ',');

g
修饰符来查找和替换所有实例正则表达式解释:
(?:\s*,+)+
- 1个或多个序列
\s*
- 0个或更多空格字符,+
- 一个或多个逗号。答案 1 :(得分:1)
string = 'word, another word,word,,,,,, another word, ,,';
console.log(string.replace(/(,)[,\s]+|(\s)\s+/g ,'$1').replace(/^,|,$/g,''));

答案 2 :(得分:0)
尝试使用split
和trim
以及map
和join
而不是正则表达式,因为正则表达式可能有点笨拙。
$.map(str.split(','),function(item,i){
if(item.trim()){
return item.trim()
}
}).join(',')
因此,将字符串拆分为,
,然后使用map函数将它们组合起来。如果项目在修剪后具有值,则保留该值。然后在将其映射到有效值数组后,用逗号连接它们。