【问题标题】:Check the start value with jquery regular expressions使用 jquery 正则表达式检查起始值
【发布时间】:2013-07-12 03:17:22
【问题描述】:

大家好,我想知道是否可以使用 jquery 检查值的开头我尝试了这段代码

$('#ads_img').keyup(function(){

if($(this).val() ^= 'http://'){
alert('ok');
}

}); 

但它对我不起作用。

【问题讨论】:

  • jQuery 只是一个 DOM 操作库。它与 JavaScript 如何处理正则表达式无关。
  • 另外^= 在 JavaScript 中执行按位异或。不是正则表达式检查。

标签: php javascript jquery html regex


【解决方案1】:

试试 JavaScript indexOf() 方法

$('#ads_img').keyup(function() {
  var value = $(this).val();
  if ( value.indexOf("http://") === 0 ) {
    alert('ok');
  }
});

示例:

"stackoverflow.com".indexOf("http://") // return -1, not found so false
"http://stackoverflow.com".indexOf("http://") // return 0, is at beginning so true
"sddsghttp://stackoverflow.com".indexOf("http://") // return 5, is at index 5 so false

【讨论】:

  • 我不确定这个检查是否在开始
  • 如果http://不是在开始,那么它不会返回0,你可以尝试不同的值
  • 你是对的@Akam,它会检查 url 中的任何位置,而不是开头。
  • 伙计们,这就是我使用0的原因,如果http://在字符串的开头,它将返回0,如果在字符串中找不到-1,请自行尝试在评论之前
  • @bystwn22 尝试 "htttp://stackoverflow.com".indexOf("http://") "stackoverflow.com".indexOf("http://")
【解决方案2】:

您想使用正则表达式来测试验证...类似这样...

var patt = /^http:\/\//gi;
$('#ads_img').keyup(function(){

    if(patt.exec($(this).val())){
        alert('ok');
    }

}); 

【讨论】:

  • 您不需要g 修饰符,因为字符串开头不能有多个匹配项。而且您不需要正则表达式,indexOf() 提供您需要的信息并且速度更快。如果您需要它们提供的额外功能,正则表达式是很好的选择。
猜你喜欢
  • 2011-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-02
  • 1970-01-01
  • 2013-10-16
  • 1970-01-01
相关资源
最近更新 更多