我获取查询字符串的功能是:
GetID: function(name) {
return decodeURI((RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) || [, null])[1]);
},
当我得到一个网址时:
http://localhost/testsite/testB.aspx?ID=12
并调用此函数返回12
。
但现在我的网址模式正在改变。
目前的网址格式为:
http://localhost/testsite/testB.aspx/12
现在我尝试更改正则表达式并将?
替换为/
以及其他内容以获得期望值12
。
但我没有成功。我对regex
的了解并不是那么好,所以有助于修改我的正则表达式以获得欲望的价值。谢谢。
答案 0 :(得分:0)
您之前的正则表达式根本不关心您?
试图替换为/
(因为我假设您的名称 var包含 ID )。
关于您的网址的信息很少(您切换到获取网址的参数,根本不能以相同的方式工作,您的网址的一般形式是什么?),但是我会试一试:< / p>
/\d+$/
只会告诉您网址末尾的数字。
答案 1 :(得分:0)
要在两个网址字符串中输入数字12
:
var myStr = "http://localhost/testsite/testB.aspx/12";
或
var myStr = "http://localhost/testsite/testB.aspx?ID=12";
你只需要使用1个正则表达式:
var number = parseInt(myStr.match(/[0-9]+(?!.*[0-9])/), 10);
或更简单:
var number = parseInt(myStr.match(/\d+$/), 10);