在Javascript或jQuery中查找两个字符串之间的字符串

Find string between two strings in Javascript or jQuery

本文关键字:字符串 两个 之间 Javascript jQuery 查找      更新时间:2023-09-26

我一直试图在一行中的两个字符串之间获取一个字符串。我发现了很多使用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('&');
    //...