我正在尝试清理输入并将其置于所需的方式。基本上,我们有几种不同方式输入的序列号 - 输入分隔(换行符),空格,逗号等。
我在下面的代码测试中遇到的问题是分隔的新行不起作用。根据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-我不确定这是否重要,但是这个领域是一个文本区域。这会影响到这个吗?
答案 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(',')