jquery - 域名 - 计算 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="">
解决方案
你忘了用字符串替换
$('#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="">
推荐阅读
- c# - 模型更新后未设置属性
- networking - Kubernetes 集群中是否可以有隔离的网络?
- javascript - html中的图像隐藏在标题的导航栏下
- jquery - jquery如何获取image和div的交集数据
- paypal - 我可以在 PayPal Gateway 中使用 Braintree SDK(特别是我需要 Apple Pay)吗?
- html - 如何使我的导航栏菜单按钮工作?
- android - 如何在 Android 中制作日历网格
- fluent-assertions - 仅断言没有值的 json .Net 对象属性名称
- java - 修复 java.lang.module.ResolutionException:两个模块将同一个包导出到非模块化应用程序中的另一个模块
- mysql - MySQL:同一张表上的级联更新