首页 > 解决方案 > 域名 - 计算 TLD 以外的字符数

问题描述

我需要对字符进行域名计数并隐藏输入。

域名:google.com
count google only
count value = 5
不计算 TLD - .com

问题出在哪里 - 它不起作用。

$('#domain').keyup(updateInputs);
$('#domain').keydown(updateInputs);
$('#domain').trigger('keyup');

function updateInputs() {
  if ($(this).val().length > 0) {
    $('#count').val($(this).val().replace(/(?=\.).*/).length);
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" name="domain" id="domain" class="domain" value="google.com">
<input type="text" name="count" id="count" class="count" value="">

$('#domain').keyup(updateInputs);
$('#domain').keydown(updateInputs);
$('#domain').trigger('keyup');



function updateInputs() {
  if ($(this).val().length > 0) {
    var onedot = new RegExp('(?=\.).*');
    var counter = $(this).val().match(onedot).length;
    $('#count').prop('value', counter);
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" name="domain" id="domain" class="domain" value="google.com">
<input type="text" name="count" id="count" class="count" value="">

标签: jqueryregex

解决方案


你忘了用字符串替换

$('#domain')
  .on("input",updateInputs)
  .trigger('input');

function updateInputs() {
    $('#count').val(
      $(this).val().replace(/(?=\.).*/,"").length || ""
    )
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" name="domain" id="domain" class="domain" value="google.com">
<input type="text" name="count" id="count" class="count" value="">


推荐阅读