我有一个像https://randomsitename-dd555959b114a0.mydomain.com这样的网址,想删除网址的-dd555959b114a0部分。
因此randomsitename是一个随机名称,域名是静态域名。
是否可以使用jquery或javascript删除该部件?
答案 0 :(得分:1)
查看使用正则表达式
的代码var url = "https://randomsitename-dd555959b114a0.mydomain.com";
var res = url.replace(/ *\-[^.]*\. */g, ".");
答案 1 :(得分:0)
你可以试试这个正则表达式,
(.*)(-[^\.]*)(.*$)
你的代码应该是,
var url = "https://randomsitename-dd555959b114a0.mydomain.com";
var res = url.replace(/(.*)(-[^\.]*)(.*$)/, "$1$3");
//=>https://randomsitename.mydomain.com
<强>解释强>
(.*)
匹配任何字符0次或更多次,并将其存储到组1中,因为我们将这些字符包含在paranthesis中。每当正则表达式引擎找到-
时,它就会停止将其存储到group1中。
(-[^\.]*)
从-
到文字.
存储到group2中。它在找到文字点时停止存储。
(.*$)
从字面点到最后一个字符存储到group3中。
$1$3
仅打印存储的group1和3.
OR
(.*)(?:-[^\.]*)(.*$)
如果您使用此正则表达式,则在替换部分中,您只需要放置$1
和$2
。
答案 2 :(得分:0)
通常最好对所有可能的案例进行编码,并且由于域名的任何部分都允许使用连字符,因此您很可能希望使用更具体的RexExp,例如:
^ # start of string
( # start first capture group
[a-z]+ # one or more letters
) # end first capture group
:// # literal separator
( # start second capture group
[^.-]+ # one or more chars except dot or hyphen
) # end second capture group
(?: # start optional non-capture group
- # literal hyphen
[^.]+ # one or more chars except dot
)? # end optional non-capture group
( # start third capture group
.+ # one or more chars
) # end third capture group
$ # end of string
或者没有评论:
^([a-z]+)://([^.-])(?:-[^.]+)?(.+)$
(如果您使用RegExps的文字形式而不是将它们创建为对象,请记住转义斜杠,即/literal\/form/
与new RegExp('object/form')
)
在字符串替换中使用,第二个参数应为:$1://$2$3
http://foo.bar-baz.com
或http://foo-bar.baz-blarg.com
等网址的上述答案将失败。