Regexp word boundary

Regexp word boundary

本文关键字:boundary word Regexp      更新时间:2023-12-14

Regexp字边界。

根据Regular_Expressions指南,'b匹配单词边界,例如空格、换行符、标点符号或字符串末尾。

我正在尝试从更改以下字符串。

"
    abc
"

"abc"

我确实尝试了以下操作,但不起作用。有什么想法吗?

"  abc  ".replace(/'b/,""); 

单词边界的描述写得很糟糕(不幸的是,这种情况经常发生)。你会在这里找到更好的参考资料。

单词边界是一个零宽度断言:它不使用任何字符,只断言条件为true。在这种情况下,它断言当前位置要么后面跟着一个单词字符而不跟一,要么前面跟着一个字符而不跟着一。

如果要匹配任何非单词字符,请使用'W(注意大写W)。但您实际上只需要匹配空白,即's:

"  abc  ".replace(/'s+/, ""); 

如果您试图执行传统的修剪操作,则需要使用锚点来确保只匹配字符串开头或结尾的空白:

"  abc  ".replace(/^'s+|'s+$/, ""); 

'b本身不匹配字符,它匹配位置。就像^$一样。

"'n't   'n  hello world 't  'n'n".replace(/^'s*/, "").replace(/'s*$/, "");
// return "hello world"

'b只处理边界而不处理空格,选择空格和第一个/最后一个字母之间的位置。

使用这个:

//fulltrim replaces all new lines with space and reduces doubled spaces
String.prototype.fulltrim=function(){return this.replace(/(?:(?:^|'n)'s+|'s+(?:$|'n))/g,'').replace(/'s+/g,' ');}
//just trim spaces from begging and ending of string
String.prototype.trim=function(){return this.replace(/^'s's*/, '').replace(/'s's*$/, '');};

使用

"    ssss   ".fulltrim();
"    
   ssss 
".fulltrim();

一些浏览器已经实现了trim方法。