gpt4 book ai didi

Javascript substring() 诡计

转载 作者:行者123 更新时间:2023-11-30 08:16:11 25 4
gpt4 key购买 nike

我有一个看起来像 http://mysite.com/#id/Blah-blah-blah 的 URL,它用于 Ajax-ey 位。我想使用 substring()substr() 来获取 id 部分。 ID可以是任意长度的字母和数字的任意组合。

到目前为止我有:

var hash = window.location.hash;
alert(hash.substring(1)); // remove #

它删除了前面的哈希,但我不是 JS 编码器,我有点挣扎。我怎样才能删除除 id 部分以外的所有内容?我也不想在最后的斜线之后包括最后的斜线 (/Blah-blah-blah)。

谢谢!

jack

最佳答案

现在,这是正则表达式有意义的情况。由于字符串的长度可变,因此在此处使用子字符串将不起作用。

此代码将假定 id 部分不包含任何斜杠。

var hash = "#asdfasdfid/Blah-blah-blah";
hash.match(/#(.+?)\//)[1]; // asdfasdfid
  • . 将匹配任何字符和
  • 连同+一个或多个字符
  • ? 使匹配成为非贪婪匹配,这样它将在字符串中第一次出现 / 时停止

如果 id 部分可以包含额外的斜杠并且最后的斜杠是分隔符,则此正则表达式将执行您的命令

var hash = "#asdf/a/sdfid/Blah-blah-blah";
hash.match(/#(.+?)\/[^\/]*$/)[1]; // asdf/a/sdfid

只是为了好玩,这里有一些不使用正则表达式的版本。

id 部分没有斜线:

var hash = "#asdfasdfid/Blah-blah-blah",
idpart = hash.substr(1, hash.indexOf("/"));

id 部分有斜杠(最后一个斜杠是分隔符):

var hash = "#asdf/a/sdfid/Blah-blah-blah",
lastSlash = hash.split("").reverse().indexOf("/") - 1, // Finding the last slash
idPart = hash.substring(1, lastSlash);

关于Javascript substring() 诡计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3645484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com