我正在使用Javascript通过网站网址发送变量,并且我试图阻止在用户不断更改同一字段时反复复制变量:
即Admin.php?pid = 2& ENT = New_Web_Site_Launched & ENA = Stuart& ENA = Stuart& ENA = Stuart
我有多个字段,并设法通过删除第一个“&”来使第一部分工作以及使用以下代码后的所有内容。
function reload(form)
{
var val=form.NewsTitle.options[form.NewsTitle.options.selectedIndex].value;
url = location.href;
url = url.replace(/&.*$/,"");
self.location= url + '&ENT=' + val;
}
但我无法从第二个“&”中删除所有内容以及之后的一切,因为我无法弄清楚它的正则表达式。
function reload2(form)
{
var
val2=form.NewsAuthor.options[form.NewsAuthor.options.selectedIndex].value;
url = location.href;
url = url.replace(Regex Here);
self.location= url + '&ENA=' + val2;
}
如果有人可以帮助我,我需要一个能够抓住所有内容的正则表达式,包括第二个“&”之后的一切如下:
即Admin.php?pid = 2& ENT = New_Web_Site_Launched & ENA = Stuart& ENA = Stuart& ENA = Stuart
谢谢Callum
答案 0 :(得分:1)
var url = "Admin.phppid=2&ENT=New_Web_Site_Launched&ENA=Stuart&ENA=Stuart&ENA=Stuart";
var regexp = /^([^&]*&[^&]*)&.*$/;
alert(url.replace(regexp, "$1"));
它只会给你Admin.php?pid=2&ENT=New_Web_Site_Launched
,但我不确定你是否要保留第一部分(第二部分&
之前的所有内容)或第二部分。
尝试一下:JSFiddle
答案 1 :(得分:0)
在java中
使用模式和匹配器从第二个&
Pattern p = Pattern.compile("&.*(&.*)");
Matcher m = p.matcher("Admin.php?pid=2&ENT=New_Web_Site_Launched&ENA=Stuart&ENA=Stuart&ENA=Stuart");
if (m.find()) {
url = url.replace(m.group(1),"");
}
System.out.println(url);
首先它会在第二个和第二个之后匹配所有内容。来自网址,然后它将从您的网址
中取代它输出:Admin.php?pid = 2& ENT = New_Web_Site_Launched
在javascript中
var url = "Admin.php?pid=2&ENT=New_Web_Site_Launched&ENA=Stuart&ENA=Stuart&ENA=Stuart"
var re = /&.*(&.*)/;
var result = re.exec(url);
if(result !=null)
{
url = url.replace(RegExp.$1,"");
alert(url);
}