如何从指定URL中提取"123asd"字符串并赋值给变量?
提取URL中子域名"123asd"的实用方法
嘿,作为Web开发新手,这个问题其实挺普遍的,我来给你分享几种不同技术栈下的实现方式,都很容易上手~
JavaScript 实现
方法1:使用原生URL对象(推荐)
现代浏览器和Node.js都支持URL对象,它能帮我们轻松解析URL的各个部分,非常可靠:
// 定义你的URL const urlStr = 'https://123asd.my.website.com/blabla/blabla/blabla'; // 创建URL实例解析地址 const url = new URL(urlStr); // 拆分hostname获取第一个部分 const targetSubdomain = url.hostname.split('.')[0]; console.log(targetSubdomain); // 输出:123asd
解释:url.hostname会返回完整的域名部分123asd.my.website.com,用split('.')按点分割成数组后,第一个元素就是我们要的123asd。
方法2:正则表达式
如果需要兼容较旧的环境,或者更灵活匹配,正则也是个不错的选择:
const urlStr = 'https://123asd.my.website.com/blabla/blabla/blabla'; // 匹配http/https开头,到第一个点之前的内容 const regex = /https?:\/\/([^.]+)\./; const matchResult = urlStr.match(regex); // 确保匹配成功后再取值 const targetSubdomain = matchResult ? matchResult[1] : null; console.log(targetSubdomain); // 输出:123asd
Python 实现
如果是后端开发用Python,也有对应的简单方法:
方法1:使用urllib.parse解析
from urllib.parse import urlparse url_str = 'https://123asd.my.website.com/blabla/blabla/blabla' parsed_url = urlparse(url_str) # 拆分域名获取子域名 target_subdomain = parsed_url.hostname.split('.')[0] print(target_subdomain) # 输出:123asd
方法2:正则表达式
import re url_str = 'https://123asd.my.website.com/blabla/blabla/blabla' match_result = re.search(r'https?://([^.]+)\.', url_str) if match_result: target_subdomain = match_result.group(1) print(target_subdomain) # 输出:123asd else: print("未匹配到目标子域名")
小提醒
如果你的URL可能存在其他格式(比如没有http/https前缀,或者域名结构更复杂),可以根据实际情况调整代码,但针对你给出的URL,上面的方法都能完美生效~
内容的提问来源于stack exchange,提问作者BRond
相关产品推荐
相关产品推荐

