javascript - 如何限制我的 url 只接受 linked-n 链接作为输入

标签 javascript html

我创建了一个用户个人资料,其中用户只能添加 LinkedIn URL

我试过了

pattern="^http(s)?:\/\/(www)?\.linkedin\.com\/in\/.*$";

html 中的正则表达式,但它限制任何东西。我还在js中添加了user-linkedin,除了linked-in链接。但如果我输入 abc_name 它将显示

https://www.linkedin.com/in/abcname

但如果我输入 https://www.google.com 那么它会准确显示网址。

html:

<input type="text" class="user-linkedin" id="user-linkedin" placeholder="LinkedIn Profile ID">

js:

userDetails.linkedin = 'http://www.linkedin.com/in/' + userDetails.linkedin.replace('http://www.linkedin.com/in/', '').replace('https://www.linkedin.com/in/','');

$(subpage.selector + ' .user-linkedin').val(userDetails.linkedin);
$(subpage.selector + ' .linkedin-link').attr('href',userDetails.linkedin);

最佳答案

如果我正确理解了您的要求,并且您需要一个正则表达式来仅匹配个人资料链接中的链接,则以下内容应该可以满足您的需求:

^http(s)?:\/\/(www\.)?linkedin\.com\/in\/.*$

<form>
  <input pattern="^http(s)?:\/\/(www\.)?linkedin\.com\/in\/.*$" />
  <button>Submit</button>
</form>

<小时/>

如果您需要检查输入是否是有效链接并使用 Jquery 将其插入 DOM 中的某个位置,您可以按如下方式执行操作:

$(".user-linkedin").on('input', function(event) {
  var validLink = /^http(s)?:\/\/(www\.)?linkedin\.com\/in\/.*$/.test(event.target.value)
    ? event.target.value
    : '';
  $(".linkedin-link")
    .text(validLink || 'invalid link')
    .attr("href", validLink);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="user-linkedin" />
<br>
Link: <a href="" class="linkedin-link"></a>

关于javascript - 如何限制我的 url 只接受 linked-n 链接作为输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54260173/

相关文章:

javascript - 标签标签包装复选框输入时如何删除复选框和样式标签

html - 如何在页面中间居中 Bootstrap col-md-4 和 col-md-5?

html - 移动 CSS 问题

javascript - JSON返回值到全局变量

JavaScript新手很困惑: if(event. shiftKey == 57)?

javascript - 数据表和 Firebase Web

javascript - JavaScript 中的后缀运算符

html - Bootstrap : large centered logo navbar

javascript - CSS : round_div is not responsive to its parent div

javascript - 如何使用 JavaScript 或 jQuery 发送一个简单的数字并仅在 URL 中接收?