我在JS中使用这个正则表达式疯了:
var patt1=/^http(s)?:\/\/[a-z0-9-]+(.[a-z0-9-]+)*?(:[0-9]+)?(\/)?$/i;
Run Code Online (Sandbox Code Playgroud)
如果我给出一个像"http://www.eitb.com/servicios/concursos/516522/"这样的输入字符串这个正则表达式,它就会返回NULL,因为在基本URL之后有一个"文件夹".它适用于PHP,但不适用于Javascript,就像在这个脚本中一样:
<script type="text/javascript">
var str="http://www.eitb.com/servicios/concursos/516522/";
var patt1=/^http(s)?:\/\/[a-z0-9-]+(.[a-z0-9-]+)*?(:[0-9]+)?(\/)?$/i;
document.write(str.match(patt1));
</script>
Run Code Online (Sandbox Code Playgroud)
它回来了
http://www.eitb.com/servicios/concursos/516522/,,/516522,,/
Run Code Online (Sandbox Code Playgroud)
问题是:为什么它不起作用?如何使它工作?
我的想法是在另一个函数中实现此正则表达式,以便在传递的URL格式不正确时获取NULL:
http://www.eitb.com/ - >正确 http://www.eitb.com/something - >不正确
谢谢
我想知道是否可以在MySQL查询中进行按位OR.我有一个查询:
SELECT `value` FROM `table` WHERE `code`='4'
Run Code Online (Sandbox Code Playgroud)
它返回一个值数组,但我想要一个唯一值,其值为所有值的按位 OR.可以从MySQL或我应该委托给PHP吗?
即上面的查询返回此值列表:
value
-----
1
5
4
2
7
8
Run Code Online (Sandbox Code Playgroud)
我希望结果是这些值1的OR 5 | 4 | 2 | 7 | 8 = 15
请看一下这段代码:
<span class="something">
<label>test1</label><br/>
<label>test2</label><br/>
<label>test3</label>
</span>
Run Code Online (Sandbox Code Playgroud)
这将创建一个垂直的标签列表.没有<br>使用CSS 的标签可以做到这一点吗?可以使用此HTML代码显示相同的垂直对齐标签列表吗?:
<span class="something">
<label>test1</label>
<label>test2</label>
<label>test3</label>
</span>
Run Code Online (Sandbox Code Playgroud) 我已经完成了将数组转换为URL的函数实现.它似乎是正确的,事实上,它在很多情况下都能很好地工作,除非我传递一个值为0的数组值.这是功能:
function strtourl($arr, $entity = true, $prefix = '') {
$params = array();
foreach ($arr as $k => $v)
if ($v) {
$params[] = is_array($v) ? strtourl($v, $entity, $prefix ? $prefix.'['.$k.']' : $k) :
sprintf($prefix ? $prefix.'[%s]' : '%s', urlencode($k)).'='.urlencode($v);
}
return implode($entity ? '&' : '&', $params);
}
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的一个例子:
$array = array(
'type' => 0,
'content' => array(
'msg_id' => 'XSS120',
'source' => 0,
'dest' => 4,
'type' => 0,
'msg' => 'message'
)
);
Run Code Online (Sandbox Code Playgroud)
它返回此字符串:
content[msg_id]=XSS120&content[dest]=4&content[msg]=message
Run Code Online (Sandbox Code Playgroud)
而不是这个:
type=0&content[msg_id]=XSS120&content[source]=0&content[dest]=4&content[type]=0&content[msg]=message …Run Code Online (Sandbox Code Playgroud) 我使用此函数来检查属性的存在:
var hasAttribute = function(el, attr) {
if ("hasAttribute" in el) {
return el.attributes[attr] != null;
}
else if ("outerHTML" in el) {
return (el.outerHTML
.replace(el.innerHTML, "")
.indexOf(" " + attr + "=") > -1);
}
};
Run Code Online (Sandbox Code Playgroud)
问题是当我使用设置输入值时.val(x),如果我使用.val()但是hasAttribute函数无法检测到它,我可以得到该值.这个jsfiddle显示了问题(我预计第一个警报说"输入有一个值",第二个显示它,但在Chrome中至少第一个警报说"输入需要一个值").
如何.val(x)按预期工作?(或者如何hasAttribute检测这些值)