/**
* 设置URL参数
* url:要设置参数的URL
* name:参数名
* value:参数值
* return:返回设置参数后的URL
*/
function setUrlParam(url, name, value) {
// 获取URL地址中参数开始索引
var index = url.indexOf("?");
// 判断URL地址中是否有参数
if (index >= 0) {
// 获取不带参数的URL地址
var baseUrl = url.substring(0, index);
// 获取URL地址中的参数信息
var paramUrl = url.substring(index);
// 获取要设置的参数的索引
index = paramUrl.indexOf("?" + name + "=");
// 判断要设置的参数是否是第一个参数
if (index == 0) {
// 获取要设置的参数后面的参数开始的索引
index = paramUrl.indexOf("&");
// 判断后面是否有参数
if (index >= 0) {
// 有参数则构造新的URL地址
return baseUrl + "?" + name + "=" + value + paramUrl.substring(index)
}
else {
// 没参数则构造新的URL地址
return baseUrl + "?" + name + "=" + value;
}
}
else {
// 不是第一个参数则获取要设置参数的索引位置
index = paramUrl.indexOf("&" + name + "=");
// 判断是否存在要设置的参数
if (index >= 0) {
// 获取要设置参数的前面的参数
var temp1 = paramUrl.substring(0, index);
// 获取要设置参数的后面的参数
var temp2 = paramUrl.substring(index + ("&" + name + "=").length);
// 获取要设置的参数后面的参数开始的索引
index = temp2.indexOf("&");
// 判断后面是否有参数
if (index >= 0) {
// 有参数则构造新的URL地址
return baseUrl + temp1 + "&" + name + "=" + value + temp2.substring(index);
}
else {
// 没参数则构造新的URL地址
return baseUrl + temp1 + "&" + name + "=" + value;
}
}
else {
// 不存在参数则构造新的URL地址
return url + "&" + name + "=" + value;
}
}
}
else {
// 原URL地址中没参数则直接构成新的URL地址
return url + "?" + name + "=" + value;
}
}
月度归档: 2017 年 3 月
关于C#中按位处理枚举的说明
一、定义:
在枚举上添加[Flags]属性,并以2的幂定义枚举的各个值:
[Flags]
public enum TestEnum
{
Value0 = 1,
Value1 = 2,
Value2 = 4,
Value3 = 8,
Value4 = 16,
All = Value0 | Value1 | Value2 | Value3 | Value4
}
二、比较:
按位运算比较枚举值是否包括某个值:
// 定义枚举变量 TestEnum testEnum = TestEnum.Value1 | TestEnum.Value2; // 判断枚举变量是否包含枚举Value2的值 bool hasValue = ((testEnum & TestEnum.Value2) == TestEnum.Value2); // 返回判断结果 return hasValue;
更多信息请参阅:FlagsAttribute 类 (System)
关于C#中设置URL参数的说明
/// <summary>
/// 设置URL参数
/// </summary>
/// <param name="url">要设置参数的URL</param>
/// <param name="name">参数名</param>
/// <param name="value">参数值</param>
/// <returns>返回设置参数后的URL</returns>
public string SetUrlParam(string url, string name, object value)
{
// 获取URL地址中参数开始索引
int index = url.IndexOf("?");
// 判断URL地址中是否有参数
if (index >= 0)
{
// 获取不带参数的URL地址
string baseUrl = url.Substring(0, index);
// 获取URL地址中的参数信息
string paramUrl = url.Substring(index);
// 判断要设置的参数是否是第一个参数
if (paramUrl.StartsWith("?" + name + "="))
{
// 获取要设置的参数后面的参数开始的索引
index = paramUrl.IndexOf("&");
// 判断后面是否有参数
if (index >= 0)
{
// 有参数则构造新的URL地址
return string.Format("{0}?{1}={2}{3}", baseUrl, name, value, paramUrl.Substring(index));
}
else
{
// 没参数则构造新的URL地址
return string.Format("{0}?{1}={2}", baseUrl, name, value);
}
}
else
{
// 不是第一个参数则获取要设置参数的索引位置
index = paramUrl.IndexOf("&" + name + "=");
// 判断是否存在要设置的参数
if (index >= 0)
{
// 获取要设置参数的前面的参数
string temp1 = paramUrl.Substring(0, index);
// 获取要设置参数的后面的参数
string temp2 = paramUrl.Substring(index + ("&" + name + "=").Length);
// 获取要设置的参数后面的参数开始的索引
index = temp2.IndexOf("&");
// 判断后面是否有参数
if (index >= 0)
{
// 有参数则构造新的URL地址
return string.Format("{0}{1}&{2}={3}{4}", baseUrl, temp1, name, value, temp2.Substring(index));
}
else
{
// 没参数则构造新的URL地址
return string.Format("{0}{1}&{2}={3}", baseUrl, temp1, name, value);
}
}
else
{
// 不存在参数则构造新的URL地址
return string.Format("{0}&{1}={2}", url, name, value);
}
}
}
else
{
// 原URL地址中没参数则直接构成新的URL地址
return string.Format("{0}?{1}={2}", url, name, value);
}
}