2 javascript截取两个符号之间的字符串:lastIndexOf匹配和

匹配和正则表达式匹配
项目需求1.规范的字符串
function extractContent(url) {const lastSlashIndex = url.lastIndexOf('/');const lastQuestionMarkIndex = url.lastIndexOf('?');if (lastSlashIndex === -1 || lastQuestionMarkIndex === -1 || lastQuestionMarkIndex < lastSlashIndex) {return '';}const content = url.substring(lastSlashIndex + 1, lastQuestionMarkIndex);return content;}// 示例用法const url = "https://test.com/p/course/column/p_64a7738ce4b0b0bc2bfcebaa?shareBind=true";const extractedContent = extractContent(url);console.log(extractedContent); // 输出: p_64a7738ce4b0b0bc2bfcebaa
在上述代码中,我们先使用方法找到最后一个斜杠和问号的索引位置 。然后,我们检查这两个索引位置是否有效,确保斜杠位于问号之前 。如果索引位置无效,则返回空字符串 。最后,我们使用方法截取位于斜杠之后、问号之前的内容,并返回结果 。
请注意,上述代码仅考虑了截取最后一个斜杠和问号之间的内容 。如果URL中没有斜杠或问号,或者它们的顺序不正确,提取的内容可能会有误 。
2.不规范的字符串
如果提供的地址字符串不包含“?”时:
function extractContent(url) {const lastSlashIndex = url.lastIndexOf('/');if (lastSlashIndex === -1) {return url;}const content = url.substring(lastSlashIndex + 1);return content;}// 示例用法const url = "https://test.com/p/course/column/p_64a7738ce4b0b0bc2bfcebaa";const extractedContent = extractContent(url);console.log(extractedContent); // 输出: p_64a7738ce4b0b0bc2bfcebaa
3-1.万能封装

2  javascript截取两个符号之间的字符串:lastIndexOf匹配和

文章插图
function extractContent(url) {var lastSlashIndex = url.lastIndexOf('/');var lastQuestionMarkIndex = url.lastIndexOf('?');var content='';//存在斜杠时if (lastSlashIndex != -1) {content = url.substring(lastSlashIndex + 1, lastQuestionMarkIndex);}//不存在问号时if (lastQuestionMarkIndex === -1) {content = url.substring(lastSlashIndex + 1);}return content;}// 示例用法const url = "https://test.com/p/course/column/p_64a7738ce4b0b0bc2bfcebaa";const extractedContent = extractContent(url);console.log(extractedContent); // 输出: p_64a7738ce4b0b0bc2bfcebaa
3-2.的优化写法
可以使用 `lastIndexOf` 和 `substring` 方法来实现截取字符串中最后一个斜杠(/)和问号(?)之间的内容:```javascriptfunction extractContent(url) {const lastSlashIndex = url.lastIndexOf('/');const lastQuestionMarkIndex = url.lastIndexOf('?');if (lastQuestionMarkIndex !== -1) {return url.substring(lastSlashIndex + 1, lastQuestionMarkIndex);}return url.substring(lastSlashIndex + 1);}// 示例用法const url1 = "https://www.example.com/path/to/file?param=value";const url2 = "https://www.example.com/path/to/file";const extractedContent1 = extractContent(url1);const extractedContent2 = extractContent(url2);console.log(extractedContent1); // 输出: fileconsole.log(extractedContent2); // 输出: file
在上述代码中,我们首先使用方法找到最后一个斜杠和问号的索引位置 。然后,我们使用两个索引位置来判断是否存在问号 。如果存在问号,则使用方法从最后一个斜杠的下一个位置开始截取到最后一个问号的位置之间的内容 。如果不存在问号,则使用方法从最后一个斜杠的下一个位置开始截取到字符串的末尾的内容 。
这种写法也能够正确地截取最后一个斜杠和问号之间的内容 。在示例用法中,两个 URL 都会输出结果 “file” 。
4.正则表达式的用法