所以我正在解析一个字符串,我使用|来标记它作为分隔符。但是,我想确保我不解析空格(任何数量)并简单地忽略它们。但是出于某种原因,没有什么是完全可行的。有些空间逃离支票并打印出来。这是我的代码:
white = value;
white.replace(/(^\s+|\s+$)/g, '');
if(white != null && white != '' && white != ' '){
console.log("IT IS NOT EMPTY");
}else{
console.log("IT IS EMPTY");
}
我无法理解。
这些工作:
" | "
" | | | "
但是
" | | | | "
不起作用......
有什么建议吗?
答案 0 :(得分:4)
.replace
不会转换字符串,而是返回新字符串。
white = white.replace(/^\s+|\s+$/g,"");
答案 1 :(得分:0)
如果你的目标是根据|
将字符串分成几部分,忽略它之前或之后的空格,那么:
var parts = value.split(/\s*\|\s*/);
该表达式表示:在可选空格上拆分后跟文字|
(您必须在正则表达式中转义它们),然后是可选的空格。
如果您的目标是从字符串中删除与|
相邻的空格,那么:
white = value.replace(/(?:\s+\|)|(?:\|\s+)/g, "|");
该正则表达式表示:如果您找到一个空格序列,后面跟着文字|
,或文字|
后面的一系列空格,请替换它们(包括|
}只有一个|
。表达式中未转义的|
是一个“交替”,意思是“我身边的任何一个东西。”