我尝试做我的作业,但如果我有一个区域,JS不是它 - 我没有关键字做任何正确的搜索。我所知道的是它可能涉及掩蔽/覆盖。
我想要一个带有客户端代码的输入元素,在用户输入的文本中查找模式。如果他们输入与其他文本内联的电话号码模式,我希望该模式可以为初学者设置风格。
最终,我想弄清楚如何通过AJAX做一些有用的事情。
不重复答案 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);