\\ RegEx不捕获新的行数据

时间:2014-10-30 19:14:38

标签: javascript regex netsuite

我正在尝试清理输入并将其置于所需的方式。基本上,我们有几种不同方式输入的序列号 - 输入分隔(换行符),空格,逗号等。

我在下面的代码测试中遇到的问题是分隔的新行不起作用。根据w3schools和其他2个网站: \ s元字符用于查找空白字符。 空白字符可以是:
- 空间特征
- 标签字符
- 回车字符
- 一个新线字符
- 垂直制表符
- 形式饲料字符

这应该意味着我基本上可以捕获任何新行。在Netsuite中,用户输入的值为:
SN1
SN2
SN3 我希望将其更改为" SN1,SN2,SN3和#34;。目前,RegEx没有拿到新线?任何帮助,将不胜感激。

**对于记录 - 当我使用Netsuite(CRM)获取输入时,此代码的其余部分是典型的javascript和正则表达式工作。这就是为什么我使用所有3个标签 - netsuite,js和regex

function fixSerailNumberString(s_serialNum){
  var cleanString = '';
  var regExSpace = new RegExp('\\s',"g");
  if(regExSpace.test(s_serialNum)){
    var a_splitSN = s_serialNum.split(regExSpace);
    for(var i = 0; i < a_splitSN.length;i++){
        if(a_splitSN[i].length!=0){
            cleanString = cleanString + a_splitSN[i]+((a_splitSN[i].split(',').length>1)?'':',');
        }
    }
    return cleanString;
  }
  else{
    alert("No cleaning needed");
    return s_serialNum;
  }
}

编辑: 1 - 如果它有空格(例如&#34; sn1,sn2,sn3和#34;需要变成&#34; sn1,sn2,sn3和#34;)和这个换行问题,我需要处理它们。我上面的内容适用于空间。 2-我不确定这是否重要,但是这个领域是一个文本区域。这会影响到这个吗?

2 个答案:

答案 0 :(得分:0)

@Cheery发现了为什么会这样。正如我所说的,我从Netsuite获得数据并使用API​​来获取数据。在Netsuite的UI中,这些数据确实看起来每行都在新行上,但是,在执行console.log时,值不是。

实施例:
显示的UI:
SN1
SN2
SN3

显示Console.log:
sn1sn2sn3

我假设用户界面被翻译成实际值,并没有考虑检查字符串是什么。

答案 1 :(得分:0)

NetSuite多选字段(如序列号事务列)通常会将所有选定的值作为单个字符串返回,正如您已经注意到&#34; sn1sn2sn3&#34 ;;但是,这些值中的每一个实际上都由非打印字符\x05分隔。试试.split(/\x05/).join(',')