这是我的字符串。
@DefaultGatekeeper
public class LoggedInGatekeeper implements Gatekeeper {
private CurrentUser currentUser;
private PlaceManager placeManager;
@Inject
public LoggedInGatekeeper(CurrentUser currentUser, PlaceManager placeManager) {
this.currentUser = currentUser;
this.placeManager = placeManager;
}
@Override
public boolean canReveal() {
PlaceRequest request = placeManager.getCurrentPlaceRequest();
if (request.hasSameNameToken('someNameToken') {
return currentUser.isLoggedIn();
}
return true;
}
}
我需要删除所有代码并将br替换为eewer <br> <br/> <div> ss</div> <img src=".."> dffdfdf df df sdf
示例:
在
\n
在
eewer <br> <br/> <div> ss</div> <img src=".."> dffdfdf df df sdf
答案 0 :(得分:3)
如果您想保留\n
:
var str = 'eewer <br> <br/> <div> ss</div> <img src=".."> dffdfdf df df sdf';
console.log(str.replace(/(<br>|<br\/>)/g, '\\n').replace(/<[^>]*>/g, ''));
&#13;
如果您想要断行而不是\n
:
var str = 'eewer <br> <br/> <div> ss</div> <img src=".."> dffdfdf df df sdf';
console.log(str.replace(/(<br>|<br\/>)/g, '\n').replace(/<[^>]*>/g, ''));
&#13;
答案 1 :(得分:1)
首先将所有BR标签替换为:
/<br\s?\/?>/g
删除其他人:
/<.*?\n?.*?>/g
或者,如果您的代码可能很复杂且多行(3个或更多):
/<(.*?\n?){0,}.*?>/g
/<[^>]*>/g //is faster as @Zze suggested
所以:
yourString.replace( /<br\s\/?>/g , '\n' ).replace( /<.*?\n?.*?>/g ,'') ;
注意:替换:
<br> <br/> <br /> and <br >
答案 2 :(得分:1)
我把它分成2个替换语句,然而在正则表达式上比我更优秀的人可以优化这个...
/(<br[\/]*>)/g
捕获您的html换行符。
/<[^>]*>/g
捕获所有其他html标记及其内容。
var string = 'eewer <br> <br/> <div> ss</div> <img src=".."> dffdfdf df df sdf';
console.log(string);
var newString = string.replace(/(<br[\/]*>)/g, "\n");
newString = newString.replace(/<[^>]*>/g, "");
console.log(newString);
&#13;
如果您正在寻求改进正则表达式,http://regexr.com是一个令人惊叹的网站,可以自由使用许多社区示例/备忘单。