javascript - 指定输入字段中的第一个字符

标签 javascript jquery

我有一个带有占位符的输入字段。

<input id="showInfo" type="text" placeholder="Search product" />

我允许通过代码搜索产品。每个产品都以 S 开头。示例:S12548、S25487、S87425

keypress() 函数被触发时,如何确保第一个字符是 S

$('#search').keypress(function(e){

});

最佳答案

您可以使用indexOf()来检查输入字符串的第一个字符是s还是S

$('#search').keypress(function (e) {
    var text = $(this).val().trim();

    if (text.indexOf('S') === 0 || text.indexOf('s') === 0) {
        // Valid
    } else {
        // Invalid, then add a at the start
        $(this).val('S' + text);
    }
});

演示使用正则表达式。

您还可以使用正则表达式来检查字符串是否以 s/S 开头

$('#search').keyup(function(e) {
  var text = $(this).val().trim();

  $(this).toggleClass('error', !/^s/i.test(text));
});
.error {
  border: solid 1px red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<input type="text" id="search" />

您还可以使用regex来检查文本是否以s开头。

if (/^s/i.test(text)) {
    // Valid

关于javascript - 指定输入字段中的第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32180542/

相关文章:

javascript - Google setOnLoadCallback 和 Ajax

javascript - 在一个循环中连接 XMLHTTPRequest 响应以记录所有循环何时完成

javascript - Controller 在 Ember 中更改模型的事件?

javascript - 如何使用javascript自动计算金额

javascript - jQuery .each() 与 .map() 不返回

jquery - $.fancybox.cancel() 不起作用

javascript - 鼠标悬停更改图像

javascript - 从输入元素获取表单和 FormData 对象?

javascript - 单击元素时,JQuery 不会更改具有 `active` 类的元素

javascript - 分页表中的总计