【问题标题】:Check First Char In String检查字符串中的第一个字符
【发布时间】:2011-06-14 18:35:54
【问题描述】:

我有输入框。如果给定字符串的第一个字符等于'/',我正在寻找一种方法来启动alert()...

var scream = $( '#screameria input' ).val();

if ( scream.charAt( 0 ) == '/' ) {

  alert( 'Boom!' );

}

目前这是我的代码。它不起作用,我认为这是因为该浏览器不知道何时检查该字符串...每当用户输入“/”作为第一个字符时,我都需要该警报。

【问题讨论】:

    标签: javascript jquery string char


    【解决方案1】:

    试试这个:

    $( '#screameria input' ).keyup(function(){ //when a user types in input box
        var scream = this.value;
        if ( scream.charAt( 0 ) == '/' ) {
    
          alert( 'Boom!' );
    
        }
    })
    

    小提琴:http://jsfiddle.net/maniator/FewgY/

    【讨论】:

    • 有一个意外错误。当alert() 被触发时,用户将尝试使用“Enter”关闭它,但这将再次调用alert()。你会如何解决这个问题?
    • 那么你可以做的是清除 Boom 之前的值,所以他们什么都不提交:this.value = ''
    • @daGrevis -- #1 使用 jsFiddle。 #2、isFired变量不在全局范围内
    • @Neal 但我只在那个匿名函数中使用它......那有关系吗?附言我将使用 jsFiddle。 ;)
    • 是的,它只存在于那个匿名中。从来没有在任何其他点。它消失了。 -- 噗--
    【解决方案2】:

    您需要添加一个 keypress(或类似的)处理程序来告诉浏览器在该输入字段上按下一个键时运行您的函数:

    var input = $('#screameria input');
    input.keypress(function() {
      var val = this.value;
      if (val && val.charAt(0) == '/') {
        alert('Boom!');
      }
    });
    

    【讨论】:

    • 不要使用input.val(),使用$(this).val()this.value,你不知道有多少输入。
    • @Neal,哈哈,真的。我想这表明我们做得对 =)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 2013-11-26
    • 2016-01-01
    • 1970-01-01
    • 2018-01-19
    相关资源
    最近更新 更多