输入时格式化文本

时间:2011-11-04 00:48:31

标签: javascript jquery maskedtextbox

我尝试做我的作业,但如果我有一个区域,JS不是它 - 我没有关键字做任何正确的搜索。我所知道的是它可能涉及掩蔽/覆盖。

我想要一个带有客户端代码的输入元素,在用户输入的文本中查找模式。如果他们输入与其他文本内联的电话号码模式,我希望该模式可以为初学者设置风格。

最终,我想弄清楚如何通过AJAX做一些有用的事情。

PS。与how to format textbox entry client side

不重复

2 个答案:

答案 0 :(得分:0)

你需要3件事,按键上的事件来读取输入,正则表达式来检查模式是否匹配,以及改变输入样式的方法。

$('div').delegate('input.phonenr', 'keyup', function () {
    var phonePattern = /^((00|\+)[0-9]{2})[0-9]\d{9}$/;
    var phoneNumber = this.value.replace(/\s|\-/g,'');
    if ( phonePattern.test(phoneNumber) ) $(this).css('color', 'green');
    else $(this).css('color', 'red');
    // test with 0041 798 12 21 123
});

test this fiddle。詹姆斯终于大了起来,没有谁这一切都不可能。 check his great post about phone patterns and regexp from which I shamelessly copied everything ^^

请注意,如果您想在文字(而非输入框)中突出显示“sometext phoneNumber somemoretext”之类的内容,check this post, and overall comments, of this other james wunderpost

注意:我更喜欢.addClass()和.removeClass()方法到.css()方法(比如我的小提琴),它更干净,被认为是更好的做法。

答案 1 :(得分:0)

您应该查看javascript富文本编辑器或至少类似this之类的样式。这是一个在普通文本区域中监听电话号码模式的快速而肮脏的例子:

function interpretKeys(e) { 
  var text = e.target.value,
      matched = text.match(/(\d|-){7,15}/g);

  if (matched) alert(matched);
}

textPlace.addEventListener('keypress', interpretKeys, false);