一行代码提取url中querystring的某个key的值

时间:2022-01-09 19:06:25
var itemdata = "OrderFilter=0&ProjectTag=15&DateType=0";
var projectTag = itemdata.replace(/.*projecttag=([\d]+).*/gi, "$1");

重点就是第二行,用匹配到的括号里的值替换整个文本。

如果用传统方法,肯定要先split"&"符号,再split"="符号,然后再取值。

这样多好,就一行代码,如果说正则效率不高或有问题,还可以优化。

重要的是这种思路和技巧。此方法仅供参考,具体怎么写,要根据自己的url的querystring而定。

另外提供一个contains的方法

    //自定义contains方法
Array.prototype.contains = function (obj) {
var i = this.length;
while (i--) {
if (this[i] == obj) {
return true;
}
}
return false;
} var projectTags = [1,2,15,14,9,8,3,11,13,16,5,4,6,7];
var isInProjectTags = projectTags.contains(15);

.net可以这么写:

            var str = "asjdflaksj*18688888888*asdf";
var result = Regex.Replace(str, @"(1[\d]{10})", "<a href=\"tel:$1\">$1</a>");//<a href="tel:18688888888">拨号</a>

java可以这么写:

        String str = "asdfadf;TKK='427735.4060570411';sdfasfd";
String result = str.replaceAll(".*TKK='(.*)';.*", "$1");//提取TKK的值

-----------------------------------------------------------------------------------------------------------

需求:提取下面括号里面的英文字符

var str = "繁体中文(zh-tw)";
var text = str.replace(/.*\((.*)\)/, "$1");

需求:提取红色内容,<p>的个数不固定

<table class="infobox vcard" style="width:22em"><tr><td><div>sssssssssssssssssss</div></td></tr></table>
<p>a</p>
<p>b</p>
<p>c</p>
<div id="toc" class="toc">ddddddddddddd</div>

<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF8">
<title></title>
<script src="http://x.x.x.x/Content/js/jquery-2.1.1.min.js"></script>
</head>
<body>
<div class="abc">
<div></div>
<p></p>
<table class="infobox vcard" style="width:22em"><tr><td><div>sssssssssssssssssss</div></td></tr></table>
<p>a</p>
<p>b</p>
<p>c</p>
<div id="toc" class="toc">ddddddddddddd</div>
<div id="fdfdf"></div>
<p></p>
<p></p>
<p></p>
</div>
<script type="text/javascript">
$(document).ready(function () {
var str = $(".abc").html();
//var str = '<table class="infobox vcard" style="width:22em">xxxx</table><p>a</p><p>b</p><p>c</p><div id="toc" class="toc">';
var str = str.replace(/([\s\S]*\<\/table\>)([\s\S]*)(\<div.*id="toc"[\s\S]*)/gi, "$2"); console.log(str);
});
</script>
</body>
</html>