当变量中的每一行前后都有空格时,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);
答案 0 :(得分:2)
您可以使用以下方法。
> 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 ]
>
答案 1 :(得分:1)
我让它与您的琴弦配合使用,可能是这很困难...一切都有计划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(','));
答案 2 :(得分:1)
只需更改正则表达式模式。首先,删除所有空白。之后,将\n
替换为,
。
var keywordsArray = "1 2 3 \n4 5\n 6 7\n8 9";
keywordsArray = keywordsArray.replace(/ */g,'').replace(/\n/g,',');
console.log(keywordsArray);
有关正则表达式的更多信息,请选中此link
答案 3 :(得分:1)
您的代码唯一的问题是,\s
在\n
语句中也与replace
匹配,因此请不要使用\s
使用空格('')。
请通过上述更新找到您的代码:
var keywordsArray = "1 2 3 \n4 5\n 6 7\n8 9";
keywordsArray = keywordsArray.replace(/ +/g,' ').split('\n');
alert(keywordsArray);
答案 4 :(得分:-1)