我有一个关于正则表达式的问题,我有一个文本,如下所示:
car,model,serie
,Mercedes,324,1,
,BMW,23423,1,
,OPEL,54322,1,
它应该看起来像:
car,model,serie
Mercedes,324,1,
BMW,23423,1,
OPEL,54322,1,
因此在文本开头不要使用逗号。
我尝试过:
var str2 = str.replace(/\n|\r/g, "");
但不知何故,我无法在正则表达式中添加逗号。
有人能帮我吗? 提前致谢。
最佳答案
这个问题有很多回复,对于正则表达式的新手来说,这可能有点让人难以接受,
总体而言,最佳响应是:
var str2 = str.replace(/^,/gm, '');
这通过使用 ^ 来检查第一个字符是否是逗号,如果是,则将其删除。它还使用 g 和 m 标志对每行的第一个字符执行此操作。
如果您对其他版本感到好奇,请继续阅读:
1:
var str2 = str.replace(/^,+/gm, '');
这是一个细微的变体,因为它将删除每行开头的多个连续逗号,但根据您的数据集,这不是必需的。
2:
var str2 = str.replace(/\n,/g, '\n');
此版本的工作方式与第一个版本完全相同,但它会发现每个换行符后跟一个带有 \n 的逗号,并将其替换为另一个换行符。
3:
var str2 = str.replace(/(\n|\r),/g, '$1')
此版本与之前的版本相同,但它不假设换行符是 \n,而是捕获任何换行符或回车符,其工作方式与 < strong>m 标志和 ^,。
4:
var str2 = str.replace(/\n+|\r+|,+/g,"\n")
最后还有这个,这是之前所有正则表达式的组合,它假设您可能有很多混合的换行符和逗号而没有任何文本,并且您希望删除所有这些字符,它对于您的示例来说是不必要的。
关于javascript - 正则表达式替换换行符和逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30726542/