在Javascript或jQuery中查找两个字符串之间的字符串
Find string between two strings in Javascript or jQuery
我一直试图在一行中的两个字符串之间获取一个字符串。我发现了很多使用regex的教程,但由于我不太擅长regex,我不知道如何做到这一点。任何帮助都将不胜感激。
var fullUrl = "http://something.com/File/?URL=http://www.wireshock.com/&IP=0.0.0.0&CAT=BLOG&USER=MAND''DEFAULT''market4080";
我需要找到一种方法来获取之间的字符串http://something.com/File/?URL=和&IP=,然后返回http://www.wireshock.com。我不想把字符串从"&"中分离出来,得到中间的字符串,因为它用&如果有任何帮助,我们将不胜感激。感谢:(
fullUrl.match(/URL=(.*?)&/i)[1];
您可以使用split:
var result = fullUrl.split('http://something.com/File/?URL=')[1].split('&IP=')[0];
或者regex,如果你真的想要的话,但这很脆弱。我建议你不要这样做。相反,像一个负责任的成年人一样正确地解析查询字符串:
如何在JavaScript中获取查询字符串值?
如果浏览器决定订购不同的东西怎么办?Regex或split将断开。
以下是您要查找的正则表达式:
fullUrl.replace(/.*URL=([^&]*)'&.*/,'$1');
http://jsfiddle.net/aL5LU/2/
还有一个可以测试未来正则表达式的页面:
http://www.regular-expressions.info/javascriptexample.html
var matches = fullUrl.match(/URL=(.+)'&IP=/);
if (matches.length > 1) {
alert(matches[1]);
}
现场演示。
此代码将根据您的需要提供准确的结果:
var url = fullUrl.split('?URL=')[1].split('/&IP=')[0];
这是一个简单的函数,可以在TypeScript和JavaScript中实现这一点,并进行一些异常情况处理:
TypeScript:
/**
* Parses substring between given begin string and end string.
* @param beginString the begin string
* @param endString the end string
* @param originalString the original string
* @returns the substring or null if either tag is not found
*/
export function parseBetween(beginString, endString, originalString): string {
var beginIndex: number = originalString.indexOf(beginString);
if (beginIndex === -1) {
return null;
}
var beginStringLength: number = beginString.length;
var substringBeginIndex: number = beginIndex + beginStringLength;
var substringEndIndex: number = originalString.indexOf(endString, substringBeginIndex);
if (substringEndIndex === -1) {
return null;
}
return originalString.substring(substringBeginIndex, substringEndIndex);
}
JavaScript:
/**
* Parses substring between given begin string and end string.
* @param beginString the begin string
* @param endString the end string
* @param originalString the original string
* @returns the substring or null if either tag is not found
*/
function parseBetween(beginString, endString, originalString) {
var beginIndex = originalString.indexOf(beginString);
if (beginIndex === -1) {
return null;
}
var beginStringLength = beginString.length;
var substringBeginIndex = beginIndex + beginStringLength;
var substringEndIndex = originalString.indexOf(endString, substringBeginIndex);
if (substringEndIndex === -1) {
return null;
}
return originalString.substring(substringBeginIndex, substringEndIndex);
}
这里有一个相当简单的脚本,可以使用jQuery(或不使用(来实现这一点http://jquery-howto.blogspot.com/2009/09/get-url-parameters-values-with-jquery.html
只需将window.location.href
替换为参数即可。
像这样:
function getUrlVars(url)
{
var vars = [], hash;
var hashes = url.slice(url.indexOf('?') + 1).split('&');
//...
- jsf中两个字符串的颜色代码差异
- 可以't在JavaScript中比较两个字符串
- jQuery在两个字符串标识符之间选择HTML
- 为什么脚本标记被分解为两个字符串
- 比较Javascript中的两个字符串时出错
- RegEx以匹配字符串中的两个或多个名称
- js字符串转换为具有两个值的对象
- 在数字字符串的最后两个数字上加上小数
- 如何在javascript中使用string.replace.将匹配字符串开头的两个不同表达式替换为null
- 如何检查两个字符串是否具有相同的字符,包括特殊字符
- Javascript正则表达式来比较两个字符串
- 使用Javascript获取两个字符串之间的字符串数组
- 如何比较两个字符串并删除jquery中的元素
- 在Javascript中截断一个字符串,混淆了最后两个测试字符串
- 如何在jQuery中搜索两个字符之间的字符串
- 我可以在两个javascript文件之间传递一个字符串吗?
- 将具有两个此类子字符串的字符串中的第一个子字符串生成与正则表达式匹配,正则表达式通常默认匹配最后一个子字符串
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- 如何从字符串中获取两个变量
- 如何在 javascript 中使用正则表达式在其他两个字符串之间找到一个字符串