如果用户键入:
my name is jackson5 model number 5g1 |nR%1b and I would 644 like to say 55 hello to all the tags of html in the world.
我想将55 hello替换为55 hello,同时他们继续打字输入框没有打嗝或中断。
这是我的代码到目前为止。我在那里有正则表达式语句,但不知道如何替换55 hello之间的空格,使其变为55hello。
<script type="text/javascript">
function isValid(strQuery){
var regStatement =/[0-9]+ hello/;
if (regStatement.test(strQuery.value)) {
strQuery.value = strQuery.value.replace("$2","");
}
}
</script>
<input type="text" id="wtf" name="search_query" onkeyup="isValid(this);" />
答案 0 :(得分:1)
试试这个
function isValid(strQuery){
strQuery.value = strQuery.value.replace(/((\d+)\s+)(?=hello)/,"$2");
}
您不需要先测试它,如果字符串不匹配,它将不会替换任何内容。
答案 1 :(得分:1)
我没有足够的声誉来发表评论,所以我将不得不诉诸'答案' - 小心这种方法。我已经测试了我的解决方案以及@leonhart上面发布的解决方案(他的情况好多了,所以我不会打扰我的)。两者的共同之处在于,如果您的输入框具有类似输入的历史记录,则会导致两次调用isValid,并开始提供建议(在Chrome中没有,但在Firefox中没有)。不确定是什么导致了它,但是,显然,事件处理程序已经注册了两次,或者沿着这些方向发生了什么......祝你好运!或者也许这里的其他人可以解释原因......以及解决方法=)