2

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

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

我不明白。

这些工作:

" | "
" | | | "

" |   | | | " 

不工作...

有什么建议么?

4

2 回答 2

4

.replace不转换字符串,它返回新字符串。

white = white.replace(/^\s+|\s+$/g,"");
于 2013-09-24T21:14:29.203 回答
0

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

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

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

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

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

那个正则表达式说:如果你发现一个空格序列后跟一个字面量|或者一个空格序列后面一个字面量|,用一个 . 替换它们(包括||。表达式中未转义|的是“alternation”,意思是“我两边的任何一个东西”。

于 2013-09-24T21:23:38.200 回答