var tagMatch;
if (tagMatch = window.location.href.match(/\/questions\/ask\?tags=([^&]+)/)) {
$(function() {
if (!$('#tagnames').val().length) {
$('#tagnames').val(unescape(match[1].replace(/\+/g, ' '));
}
});
}
大家好,这个JS代码应该匹配/questions/ask?tags=some-tag
形式的URL的后半部分,然后将tags=
之后的URL部分中包含的文本插入到文本框中标识#tagnames
。我究竟做错了什么?我怎样才能解决这个问题?
我还在学习,如果你想告诉我如何修复我的正则表达式或其他任何东西,请做!
答案 0 :(得分:1)
不要过多地了解字符串匹配的工作原理......
您似乎正在定义和设置名为tagMatch
的变量,但之后您正在使用名为match
的变量来设置值。
这是问题吗?
更新:道歉 - 你的正则表达式是正确的 - 我误读了意图:)
答案 1 :(得分:1)
我认为错误在于此行
if (!$('#tagnames').val().length)
length将返回一个数字,并根据数字进行检查。
像
这样的东西if ($('#tagnames').val().length > 0)
我认为不需要在if语句中放置文档。这不是更好吗?
$(function() {
var tagMatch;
if (tagMatch = window.location.href.match(/\/questions\/ask\?tags=([^&]+)/))
{
if ($('#tagnames').val().length > 0)
{
$('#tagnames').val(unescape(match[1].replace(/\+/g, ' '));
}
}
});