Javascript正则表达式
我想要捕获此集中的所有字符
([-A-Z0-9+&@#\/%=~._|\?]{2,})
但我不希望结束~~
||
##
。
例如:
It@was@022342@whate@~f56@|fdsdfw&~~
应该导致了
的上限It@was@022342@whate@~f56@|fdsdfw&
答案 0 :(得分:3)
你去了:
re = /([-A-Z0-9+&@#\/%=~._|\?]{2,}?)(?:(~~|##|\|\|)+)/i
工作示例:
re = /([-A-Z0-9+&@#\/%=~._|\?]{2,}?)(?:(~~|##|\|\|)+)/i
str = "It@was@022342@whate@~f56@|fdsdfw&~~"
console.log(str.match(re)[1])
str = "It@was@022342@whate@~f56@|fdsdfw&##"
console.log(str.match(re)[1])
str = "It@was@022342@whate@~f56@|fdsdfw&||"
console.log(str.match(re)[1])
str = "It@was@022342@whate@~f56@|fdsdfw&||##"
console.log(str.match(re)[1])
str = "It@was@022342@whate@~f56@|fdsdfw&##||"
console.log(str.match(re)[1])
答案 1 :(得分:0)
这可能是一种更聪明的方法,但这是一种非常简单的方法:
([-A-Za-z0-9+&@#\/%=~._|\?]{2,}?)(?:~~|\|\||##)?$
答案 2 :(得分:0)
截至上述评论,我认为您要从字符串~~
中删除||
##
str
,您可以这样做:
str.replace(/(~~|\|\||##)/g, "");
或者,如果您只想从字符串末尾删除
str.replace(/(~~|\|\||##)+$/, "");
答案 3 :(得分:0)
这是你在找什么?
str.replace(/[\|#~]*$/,'');
例如:
var str = "It@was@022342@whate@~f56@|fdsdfw&~~";
str.replace(/[\|#~]*$/,'');
"It@was@022342@whate@~f56@|fdsdfw&"
如果您最后有~
,#
和|
的任意组合,也可以使用
var str = "It@was@022342@whate@~f56@|fdsdfw&~#|"
str.replace(/[\|#~]*$/,'');
"It@was@022342@whate@~f56@|fdsdfw&"