我们假设我有一个<input>
标签。此标记的值用于更改。问题是如果用户输入单引号或双引号 - 它会破坏代码。
现在这个问题很简单:
以下是示例代码:
<input id="TestInput"></input>
$("#TestInput").keypress(function (e) { // override keypress of " or '
if (e.which == 13 || e.which == 34 || e.which == 39) {
return false;
}
})
.bind("paste", function (e) {// forbid paste
e.preventDefault();
})
.change(function(){
var value = $(this).val();
//and then I use this value for my operations
});
问题:是否有更好的方法可以在不禁止粘贴的情况下摆脱所有引号?
注意:我认为它可以通过RegExp解决,但我对它们并不好,所以如果你能提供Regexp - 这可能有效。
先谢谢大家。
在更改时,对一个调用DB的方法执行ajax调用,引号会以某种方式中断查询: 的查询:
var query = "SELECT Column FROM table WHERE somecolumn LIKE '" + inputVal+ "'%";
如果inputVal
类似于"foo
,则产生的刺痛将如下所示:
var query = "SELECT Column FROM table WHERE somecolumn LIKE '" + "foo+ "'%";
显然打破了查询。 +数据库中没有包含引号的项目。
答案 0 :(得分:2)
仅处理文本框中的数据:
$("#TestInput").on('input', function () {
var value = $(this).val().replace(/'/g, '').replace(/"/g, '');
// go on with processing data
});