分割功能后,使用RegExp方法丢失空白区域

时间:2017-07-16 14:06:00

标签: javascript jquery html string

这是我的问题:

var string = 'string     &        string';
let condition = /\S*(&)\S*/;
var array = string.split(condition);
for(i=0;i<array.length;i++){
    if(i!==1){//array[1] is simply '&' in that case
        document.getElementById('myDiv').innerHTML+=array[i];
    }
}
//the output:
string             string
//but:
if string = 'string&string' the output is:
empty...

我不能只使用替换或类似的方法,因为我正在处理一些更复杂的代码。这只是问题的简化示例。 我真正的问题是:为什么我会丢失作为方法拆分主题的字符串的开头和结尾的空格? css'white space:pre'属性不起作用,所以问题就是函数。

2 个答案:

答案 0 :(得分:0)

该函数不会删除空格:

➜  ~ node
> var string = 'string     &        string';
undefined
> let condition = /\S*(&)\S*/;
undefined
> var array = string.split(condition);
undefined
> array
[ 'string     ', '&', '        string' ]

你的CSS一定是错的,因为I tried your code with white-space: pre applied to myDiv it shows whitespace

答案 1 :(得分:0)

将字符串添加到行

中的HTML后,您将丢失空格
document.getElementById('myDiv').innerHTML+=array[i];

因为HTML删除了多个空白字符。

您的CSS应如下所示:

#myDiv {
    white-space: pre;
}

如果合适,您还可以使用<pre>标记。