假设我有一个像这样的网址:
https://example.com/myproject/index-dev.html?_ijt=hsdlgh8h5g8hh489sajoej&a=102&b=a%20m&c=45&d=all&e=all
或者它可能是本地主机上的网页,例如:
localhost:63342/my project/index-dev.html?_ijt=hsdlgh8h5g8hh489sajoej&a=102&b=a%20m&c=45&d=all&e=all
我必须从二维数组中的这些 url 中提取查询字段(出现在“?”之后),如下所示:
_ijt | hsdlgh8h5g8hh489sajoej
a | 102
b | a m
c | 45
d | all
e | all
请注意,在“b”字段中,我已将“%20”替换为空格。 _ijt、a、b、c、d、e 等字段的数量可能会有所不同,它们的名称例如“a”可以是“城市”。
到目前为止,我已经使用正则表达式提取了 '?' 之后的部分。然后使用 split("&") 方法将字符串拆分为多个字符串。
代码 -
val url=localhost:63342/my project/index-dev.html?_ijt=hsdlgh8h5g8hh489sajoej&a=102&b=a%20m&c=45&d=all&e=all
val pattern="""(http|htpps)([A-Za-z0-9\:\/\%\-\.]*)\?""".r
val temp_url=pattern.replaceFirstIn(url,"")
val fields=temp_url.split("&")
println(fields.foreach(println))
输出是:
_ijt=hsdlgh8h5g8hh489sajoej
a=102
b=a%20m
c=45
d=all
e=all
但这似乎不是执行此操作的正确方法。有什么帮助吗?
最佳答案
使用 js.URIUtils.decodeURIComponent
准确解码 %
- 编码字符。
关于scala.js - 在 Scala-js 中从 url 中提取字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40988504/