如何获取URL字符串参数

时间:2017-11-18 19:26:04

标签: javascript

其实我是学生和初学者 我正在制作一个在线愿望网页作为测试项目我想在html中显示发件人的名字 我已成功完成,但我想获取URL字符串参数文本 我怎么能这样做

我的网站地址模式就像 www.subdomain.domain.tld /页/ 2 N =(sender_encoded_name)

所以我想从URL的n参数中获取数据并对其进行解码。

我在网上搜索了很多这个并且感到困惑 所以请帮我解决实际的方法

我尝试使用此代码,

var reqParam = URLDecoder.decode(reqParam, "UTF-8")

但我有点困惑请尽可能帮助我......

3 个答案:

答案 0 :(得分:0)

您可以尝试获取查询参数值 -

var urlObj = new URL("http://www.subdomain.domain.tld/page/?n=a%20b%20c&m=a%20b%20c%20d");
var params = urlObj.searchParams;
params.get('n');
params.get('m');

答案 1 :(得分:0)

在Java中,您可以使用模式匹配和正则表达式从URL字符串(或任何字符串)中收集所需的数据:

String urlString = "www.subdomain.domain.tld/page/?n=(sender_encoded_name)";

List<String> list = new ArrayList<>();
String regexString = "\\Q?n=(\\E(?s)(.*?)\\Q)\\E";
Pattern pattern = Pattern.compile("(?iu)" + regexString);
Matcher matcher = pattern.matcher(urlString);
while (matcher.find()) {
    String match = matcher.group(1).trim();
    list.add(match);
}

// Display all items found matching the supplied pattern
for(int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i));
}

控制台输出将是:

sender_encoded_name

将其放入您可能拥有的方法中:

public List<String> getEncodedName(String urlString) {
    List<String> list = new ArrayList<>();
    String regexString = "\\Q?n=(\\E(?s)(.*?)\\Q)\\E";
    Pattern pattern = Pattern.compile("(?iu)" + regexString);
    Matcher matcher = pattern.matcher(urlString);
    while (matcher.find()) {
        String match = matcher.group(1).trim();
        list.add(match);
    }
    return list;
}

使用它:

String urlString = "www.subdomain.domain.tld/page/?n=(sender_encoded_name)";
List<String> list = getEncodedName(urlString);

// Display all items found matching the supplied pattern
for(int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i));
}

控制台输出将是:

sender_encoded_name

正则表达式说明:

enter image description here

答案 2 :(得分:-1)

我想,你会发现这个页面很有趣:

https://api.jquery.com/jquery.get/

可能可以帮助您使用PHP的示例:

echo 'Hello ' . htmlspecialchars($_GET['name' ]) . '!';

想象一下,您的网址为http://example.com/?name=Andrew

然后,您会看到类似:Hello Andrew!

的内容