繁体   English   中英

Javascript / Regex:Split()在我的情况下不起作用

[英]Javascript/Regex: Split() not working for my case

当变量中的每一行之前或之后都有空格时,split()不起作用。 下面的代码应返回(123,45,67,89),但应返回(1234567,89)。 REGEX可能是问题所在,但我不知道如何解决。 您的帮助将不胜感激。 谢谢,

  var keywordsArray = "1 2 3 \\n4 5\\n 6 7\\n8 9"; keywordsArray = keywordsArray.replace(/\\s\\s+/g,' ').split('\\n'); alert(keywordsArray); 

您可以使用以下方法。

以,(逗号)分隔:

> var result = keywordsArray.split('\n')
undefined
> result
[ '1 2 3  ', '4 5', ' 6       7', '8 9' ]
>
> result = result.map(s => s.replace(/\s+/g, ''))
[ '123', '45', '67', '89' ]
>
> result.join(',')
'123,45,67,89'
>

整数数组:

> var keywordsArray = "1 2 3  \n4 5\n 6       7\n8 9"
undefined
> keywordsArray
'1 2 3  \n4 5\n 6       7\n8 9'
>
> var result = keywordsArray.split('\n')
undefined
> result
[ '1 2 3  ', '4 5', ' 6       7', '8 9' ]
>
> result = result.map(s => parseInt(s.replace(/\s+/g, '')))
[ 123, 45, 67, 89 ]
>

我让它与您的琴弦配合使用,可能是这很困难...一切都有计划B

 var keywordsArray = "1 2 3 \\n4 5\\n 6 7\\n8 9"; keywordsArray = keywordsArray.split('\\n').map(item => item.replace(/\\s/g,'')); console.log(keywordsArray.join(',')); 

只需更改正则表达式模式即可。 首先,删除所有空白。 在此之后,替换\\n,

var keywordsArray = "1 2 3  \n4 5\n 6       7\n8 9";
keywordsArray = keywordsArray.replace(/ */g,'').replace(/\n/g,',');
console.log(keywordsArray);

有关正则表达式的更多信息,请检查此链接

您的代码的唯一问题是\\sreplace语句时也与\\n匹配,因此请不要使用\\s\\s ')。

请通过上面提到的更新找到您的代码:

 var keywordsArray = "1 2 3 \\n4 5\\n 6 7\\n8 9"; keywordsArray = keywordsArray.replace(/ +/g,' ').split('\\n'); alert(keywordsArray); 

尝试使用文字空间''代替'\\ s',因为

/ \\ s / g任何空格字符

下次遇到问题时 ,请查看regex101-这真的很有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM