用逗号登录字符串,javascript替换所有字符

时间:2016-01-22 09:13:50

标签: javascript jquery

用户可以输入单独的列表在输入字段中,例如:

123, 123, 123

123!123!123

123:123:123

使用完成后,我想用逗号分隔所有非数字字符。我怎样才能做到这一点?当用户完成时,我希望用逗号分隔字符串

我试过这样的话:

var accidentFieldVal = $('#accidentId').val().split(/[ ,]+/).join(',');
accidentFieldVal = accidentFieldVal.replace(/,\s*$/, "");

4 个答案:

答案 0 :(得分:2)

如果您正在使用逗号替换非数字组的简单方法,则以下内容就足够了:

function replaceWithCommas (data) {
    return data.replace(/[^\d]+/g, ",");
}

[^\d]+只匹配一个或多个非数字字符。

运行:

console.log (replaceWithCommas("123, 123, 123"));
console.log (replaceWithCommas("123!123!123"));
console.log (replaceWithCommas("123:123:123"));

输出:

123,123,123
123,123,123
123,123,123

答案 1 :(得分:1)

Try this

var str = "123! 22! 33"; 
var res = str.replace(/[^\d]+/g, ",");

答案 2 :(得分:0)

试试这个:

accidentFieldVal = $('#accidentId').val();
accidentFieldVal = accidentFieldVal .replace(/^[^\d]+|[^\d]+$/g, '');
accidentFieldVal = accidentFieldVal .replace(/[^\d]+/g, ',');

答案 3 :(得分:0)

Shriya R的答案仅适用于整数。 如果您也想使用double值,请尝试以下:

var target = "10:20:30:40.0";

function replaceComma(str)
{
   return str.replace(/[^\d.]+/g, ',');
}

replaceComma(target); // output: "10,20,30,40.0"