试图解析由|分隔的字符串我想忽略“| | | |”但它不起作用

时间:2013-09-24 21:12:04

标签: javascript regex parsing whitespace

所以我正在解析一个字符串,我使用|来标记它作为分隔符。但是,我想确保我不解析空格(任何数量)并简单地忽略它们。但是出于某种原因,没有什么是完全可行的。有些空间逃离支票并打印出来。这是我的代码:

white = value;
white.replace(/(^\s+|\s+$)/g, '');
if(white != null && white != '' && white != ' '){
   console.log("IT IS NOT EMPTY");
}else{
   console.log("IT IS EMPTY");
}

我无法理解。

这些工作:

" | "
" | | | "

但是

" |   | | | " 

不起作用......

有什么建议吗?

2 个答案:

答案 0 :(得分:4)

.replace不会转换字符串,而是返回新字符串。

white = white.replace(/^\s+|\s+$/g,"");

答案 1 :(得分:0)

如果你的目标是根据|将字符串分成几部分,忽略它之前或之后的空格,那么:

var parts = value.split(/\s*\|\s*/);

该表达式表示:在可选空格上拆分后跟文字|(您必须在正则表达式中转义它们),然后是可选的空格。

如果您的目标是从字符串中删除与|相邻的空格,那么:

white = value.replace(/(?:\s+\|)|(?:\|\s+)/g, "|");

该正则表达式表示:如果您找到一个空格序列,后面跟着文字|文字|后面的一系列空格,请替换它们(包括|}只有一个|。表达式中未转义的|是一个“交替”,意思是“我身边的任何一个东西。”