使用逗号替换换行符的正则表达式,用逗号

时间:2016-01-05 17:34:38

标签: angularjs regex string replace

我正在进行字符串验证。基本上,我想用逗号替换新行,但我也希望双引号内的文本保持其间的空间..

例如,如果我对textarea的输入如下(在行之间):

A“B C”D

E 123

F 456

我希望它输出 - > A,B C,D,E 123,F 456

在我的AngularJS服务中,我可以使用this.stringReplace(styleStr, '\n', ',');替换新行,然后我的双引号验证的正则表达式是这样的: styleStr.replace(/ +(?=([^"\\]*(\\.|"([^"\\]*\\.)*[^"\\]*"))*[^"]*$)|^(?!\n)*$/g, ',').replace(/"/g, ',');

...我的stringReplace函数是这样的:

   stringReplace: function (string, text, by) {
      // Replaces text with by in string
      var strLength = string.length,
        txtLength = text.length;
      if ((strLength === 0) || (txtLength === 0)) {
        return string;
      }
      var i = string.indexOf(text);
      if ((!i) && (text !== string.substring(0, txtLength))) {
        return string;
      }
      if (i === -1) {
        return string;
      }
      var newstr = string.substring(0, i) + by;
      if (i + txtLength < strLength) {
        newstr += this.stringReplace(string.substring(i + txtLength, strLength), text, by);
      }
      return newstr;
    }

目前,第一行(A“B C”D)格式正确,但是删除了E 123之间的空格,以及F 456之间的空格。我哪里出错?

0 个答案:

没有答案