是否有一种无插件的方式通过jQuery(或没有)检索查询字符串值?
如果是这样,怎么样?如果没有,是否有插件可以这样做?
我想使用正则表达式匹配字符串的一部分,然后访问该带括号的子字符串:
var myString = "something format_abc"; // I want "abc"
var arr = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(myString);
console.log(arr); // Prints: [" format_abc", "abc"] .. so far so good.
console.log(arr[1]); // Prints: undefined (???)
console.log(arr[0]); // Prints: format_undefined (!!!)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我发现有什么不对上述正则表达式代码:实际的字符串,我反对是这样的测试:
"date format_%A"
Run Code Online (Sandbox Code Playgroud)
报告"%A"未定义似乎是一种非常奇怪的行为,但它与此问题没有直接关系,所以我开了一个新的,为什么匹配的子字符串在JavaScript中返回"undefined"?.
问题是console.log它的参数就像一个printf语句,因为我正在记录的字符串("%A")有一个特殊的值,它试图找到下一个参数的值.
http://domain.com/page.html?returnurl=%2Fadmin
Run Code Online (Sandbox Code Playgroud)
对于js内部page.html,如何检索GET参数?
对于上面这个简单的例子,func('returnurl')应该是/admin
但它也适用于复杂的查询......
我试图解析是由由两种分离的key = value对的URL编码的字符串&或&.
以下内容仅匹配第一次出现,将键和值分解为单独的结果元素:
var result = mystring.match(/(?:&|&)?([^=]+)=([^&]+)/)
Run Code Online (Sandbox Code Playgroud)
字符串'1111342 = Adam%20Franco&348572 = Bob%20Jones'的结果将是:
['1111342', 'Adam%20Franco']
Run Code Online (Sandbox Code Playgroud)
使用全局标志'g'将匹配所有匹配项,但仅返回完全匹配的子字符串,而不是分离的键和值:
var result = mystring.match(/(?:&|&)?([^=]+)=([^&]+)/g)
Run Code Online (Sandbox Code Playgroud)
字符串'1111342 = Adam%20Franco&348572 = Bob%20Jones'的结果将是:
['1111342=Adam%20Franco', '&348572=Bob%20Jones']
Run Code Online (Sandbox Code Playgroud)
虽然我可以&单独拆分字符串并分别拆分每个键/值对,但有没有办法使用JavaScript的正则表达式支持来匹配模式的多次出现,/(?:&|&)?([^=]+)=([^&]+)/类似于PHP的preg_match_all()函数?
我的目标是通过某种方式获得结果,子匹配分开如下:
[['1111342', '348572'], ['Adam%20Franco', 'Bob%20Jones']]
Run Code Online (Sandbox Code Playgroud)
要么
[['1111342', 'Adam%20Franco'], ['348572', 'Bob%20Jones']]
Run Code Online (Sandbox Code Playgroud) 可能重复:
如何在JavaScript中获取"GET"请求参数?
jQuery querystring
如何在JavaScript中获取查询字符串值?
Javascript没有提供这样做的核心方法,那么怎么做呢?
在第一页中我在文本框中获取值我需要将其传递给另一个分为2帧的页面.我需要在第一帧的html页面中显示该值.请给我一个简单的例子.我尝试使用window.document.getElementById("inputbox1").value但我无法获取值.
请给我一个简单的例子.
我正在开发一个网站,并考虑通过在 javascript 中编写一些行来减少页面数量。我在一个页面上有一个表格,可以引导您到其他 15 个页面。因此,我想到打开一个页面,其中包含 15 个页面的所有信息,并根据在表格上单击的链接来显示内容。我的一张表数据如下
<td><a style="color:black;" onClick="openCompiler()">C++ Compiler</a></td>
Run Code Online (Sandbox Code Playgroud)
openCompiler()单击链接时我将触发事件调用。
function openCompiler()
{
window.open("mypage.html")
document.getElementById(compiler).style.display="block";
}
Run Code Online (Sandbox Code Playgroud)
在页面中,我有一个包装器(称为编译器),最初没有显示,但是当单击链接时,它会打开页面并显示包装器(称为编译器)。
我的上述努力失败了,正在寻找另一种方法:
1) The window.open()无法打开我的文件夹中的 HTML 文件。
2我不确定是否document.getElementById(compiler).style.display="block";正在当前页面中查找名为“编译器”的元素。
我在寻找什么:
1)一种使用javascript打开另一个html页面的方法。
2)一种从初始页面(带有表格)在新页面上设置元素样式的方法。
感谢所有帮助:)
这个问题(或类似问题)似乎经常被问到,但是我尝试了许多方法来检查从我拥有的函数返回的值是否为null;无济于事。
我的函数,按名称获取URL参数:
function getURLParameter(name) {
return decodeURI(
(RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
);
}
Run Code Online (Sandbox Code Playgroud)
但是,显然可能没有参数,因此我需要检查返回的值。
进行console.log( getURLParameter('client') );退货null...但是进行空检查不起作用。
我尝试了以下方法:
if ( getURLParameter("client") !== null ) {
alert("It's there matey!");
}
if ( getURLParameter("client") != null ) {
alert("It's there matey!");
}
if ( ! getURLParameter("client") ) {
alert("It's there matey!");
}
Run Code Online (Sandbox Code Playgroud)
这些似乎都不适合我。
我哪里出问题了?我可以在香草JS中或使用jQuery库进行此操作。