我如何只从一个网站输入 link?
How do i only input link from one website?
我还有一个问题。如何限制输入表单仅接受来自某个网站的 links 例如 Youtube 应该包含此 link https://www.youtube.com/--- 并且通过单击添加按钮您将只允许该类型列表中的 link 个。我到处找,但找不到任何东西。
<script>
var input = document.getElementById('geturl');
var button = document.getElementById('addlist');
var addurl = function() {
var url = input.value;
var li = document.createElement('li');
li.innerHTML = url;
song = document.getElementById('songurl');
if (url.length == 0) {
alert('Please input data in the field.');
console.log('No text in input.');
} else {
song.appendChild(li);
document.getElementById("geturl").value = "";
console.log('Url added');
}
}
button.onclick = addurl;
</script>
</-->
<body>
<header>
<nav>
<div class="vidplay-title">
<div class="logo">
<i class="fa fa-forward" style="font-size:24px"></i>
</div>
<div class="title">
<h2>Music Share</h2>
</div>
</div>
</nav>
</header>
<section id="content">
<form name="form">
<div class="search">
<input type="text" placeholder="paste url..." id="geturl">
<input type="submit" value="Add" id="addlist" onclick="return empty()" name="url">
</div>
<article>
<div class="container" id=#list>
<h5>Share your youtube url list and enjoy.</h5>
<div class="scroll list-item-group">
<div class="song-list">
<ol class="song" id="songurl">
</div>
</div>
<button class="btn btn-primary">Share</button>
</article>
</div>
</form>
</section>
<section>
<footer>
<div class="footer">
<p>@Copyright</p>
</div>
</footer>
</section>
检查输入字符串是否以您想要的 URL 开头,例如https://youtube.com/
就像在您的示例代码中一样,if(url.length == 0)
。但是您可以使用正则表达式来检查您的输入而不是长度。
var pattern = /* your regular expression */;
if (!url.match(pattern)) {
alert("wrong url");
}
使用例如startsWith()
(或正则表达式):
if (url.length == 0) {
alert('Please input data in the field.');
return;
}
if (!url.startsWith("https://www.youtube.com/")) {
alert("Not a YouTube link.");
return;
}
song.appendChild(li);
document.getElementById("geturl").value = "";
// etc...
您可以使用正则表达式来获得更通用的验证器,因为所有 url 看起来都不像这样 https://youtube.com/
var pattern = /^(?:https?:\/\/)?(?:m\.|www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
if (!url.match(pattern)) {
// Invalid link
}
简单的答案是只接受部分 URLS 或者更具体地说 https://youtube.com
之后的路径位而不是完整的 URL
我还有一个问题。如何限制输入表单仅接受来自某个网站的 links 例如 Youtube 应该包含此 link https://www.youtube.com/--- 并且通过单击添加按钮您将只允许该类型列表中的 link 个。我到处找,但找不到任何东西。
<script>
var input = document.getElementById('geturl');
var button = document.getElementById('addlist');
var addurl = function() {
var url = input.value;
var li = document.createElement('li');
li.innerHTML = url;
song = document.getElementById('songurl');
if (url.length == 0) {
alert('Please input data in the field.');
console.log('No text in input.');
} else {
song.appendChild(li);
document.getElementById("geturl").value = "";
console.log('Url added');
}
}
button.onclick = addurl;
</script>
</-->
<body>
<header>
<nav>
<div class="vidplay-title">
<div class="logo">
<i class="fa fa-forward" style="font-size:24px"></i>
</div>
<div class="title">
<h2>Music Share</h2>
</div>
</div>
</nav>
</header>
<section id="content">
<form name="form">
<div class="search">
<input type="text" placeholder="paste url..." id="geturl">
<input type="submit" value="Add" id="addlist" onclick="return empty()" name="url">
</div>
<article>
<div class="container" id=#list>
<h5>Share your youtube url list and enjoy.</h5>
<div class="scroll list-item-group">
<div class="song-list">
<ol class="song" id="songurl">
</div>
</div>
<button class="btn btn-primary">Share</button>
</article>
</div>
</form>
</section>
<section>
<footer>
<div class="footer">
<p>@Copyright</p>
</div>
</footer>
</section>
检查输入字符串是否以您想要的 URL 开头,例如https://youtube.com/
就像在您的示例代码中一样,if(url.length == 0)
。但是您可以使用正则表达式来检查您的输入而不是长度。
var pattern = /* your regular expression */;
if (!url.match(pattern)) {
alert("wrong url");
}
使用例如startsWith()
(或正则表达式):
if (url.length == 0) {
alert('Please input data in the field.');
return;
}
if (!url.startsWith("https://www.youtube.com/")) {
alert("Not a YouTube link.");
return;
}
song.appendChild(li);
document.getElementById("geturl").value = "";
// etc...
您可以使用正则表达式来获得更通用的验证器,因为所有 url 看起来都不像这样 https://youtube.com/
var pattern = /^(?:https?:\/\/)?(?:m\.|www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
if (!url.match(pattern)) {
// Invalid link
}
简单的答案是只接受部分 URLS 或者更具体地说 https://youtube.com
之后的路径位而不是完整的 URL