禁止输入引号的最佳方式
Best way to forbid quotation marks on input
假设我有一个<input>
标记。此标记的值用于更改。问题是,如果用户输入单引号或双引号,就会破坏代码。现在这个问题解决得很简单:
- 为这些键覆盖按键
- 禁止粘贴到输入
这是示例代码:
HTML
<input id="TestInput"></input>
Javascript
$("#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
});
样品Fiddle
问题是:有没有更好的方法可以在不禁止粘贴的情况下去掉所有引号?
注意:我认为它可以用RegExp解决,但我不擅长它们,所以如果你能提供RegExp,这可能会奏效。
提前感谢大家。
更新-1
在更改时,将对一个方法执行ajax调用,该方法调用DB并以某种方式用引号打断查询,如下所示:查询:
var query = "SELECT Column FROM table WHERE somecolumn LIKE '" + inputVal+ "'%";
如果inputVal
类似于"foo
,则生成的刺痛将看起来像:
var query = "SELECT Column FROM table WHERE somecolumn LIKE '" + "foo+ "'%";
这显然打破了查询。+数据库中没有包含引号的项目。
只处理文本框中的数据:
$("#TestInput").on('input', function () {
var value = $(this).val().replace(/'/g, '').replace(/"/g, '');
// go on with processing data
});
相关文章:
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 为react组件传递道具的最佳方式
- 让Webpack管理Quirky AMD定义的最佳方式
- 在承诺链中处理早期回报的最佳方式
- 在ng重复循环中显示条件内容的最佳方式是什么
- 在phonegap中为android调用onload函数的最佳方式
- 链接两个网页或网络应用程序的最佳方式
- 什么's是连接供应商js文件的最佳方式
- 什么's是在javascript中迭代项的最佳方式
- 在node.js中编写单元测试的最佳方式是什么
- 在页面上记录数据并实现pushstate()的最佳方式
- 使用AJAX在Rails中提交动态表单的最佳方式是什么
- 什么'这是加载jQuery的最佳方式
- 将大数组(字符串和类型数组的混合物)存储到blob或文件中/从blob或文件检索大数组的最佳方式
- 在网站上显示.mov作为加载屏幕的最佳方式
- 使用Angular存储用户以前是否选中过复选框,然后再调用它的最佳方式是什么
- 以角度渲染表中数据的最佳方式
- 删除集合中旧邮件/帖子的最佳方式
- 显示全屏Ajax加载程序的最佳方式
- PHP和JS中表单验证的最佳方式