我正在创建一个程序,该程序创建一个输入框排列在一个表格中的电子表格类型格式。我目前有一切颜色编码,以便当数据上传到表格时,一些正则表达式有助于更改颜色。但只限于上传。输入模式属性,以改变输入框的颜色
不过,我也想能够用手动态改变颜色我输入数据(而不是仅仅上传文件并调用颜色来完成。)
我被告知要考虑使用的input
标记的pattern
属性允许匹配正则表达式。这似乎很适用,但我不知道如何编写JavaScript函数来利用这个。我有我的正则表达式,我知道我想用什么颜色,但我不知道如何在模式中运行函数。
我上传的颜色是通过在每一块数据上运行一个函数来实现的,如果它是一种特定的颜色,它会将它推入该特定颜色的数组中。另一个函数在创建表时会检查哪些数据在哪个数组中。然后它返回“红色”,“蓝色”或“绿色”。所有这些我在input
标记的class
属性中使用。
所以我们可以说我有
var blue_regex = (/([A-Z0-9]+\*\d+:\d+:\d+)(.+)/);
var red_regex = /(\*\d\d$)/;
而且
makeColors = function(data) {
if (red.indexOf(data) >= 0) {
return "red";
}
else if (blue.indexOf(data) >= 0) {
return "blue";
}
else {
return "green"; //returns green by default
};
};
其中makeColors
是所谓的类input
标签。
我不想处理从我提到的这些红色和蓝色阵列中推出和弹出的项目,但只是使用pattern
属性更改颜色,请记住我也使用class
方法来保存这些颜色。
我该怎么做呢?
模式是RegEx对象,而不是方法。你应该阅读JavaScript正则表达式。了解基础知识需要半个小时。一个高级问题:您可能需要担心将字符串复制并粘贴到输入字段中。如果有人将100个字符粘贴到字段中,您是否要连续运行100次正则表达式测试?似乎你可能不得不。但是你也必须在坏的之后删除所有字符的输入。 – Ringo
我了解正则表达式。我正在寻找一些方法来创建一个函数,每次在输入框中检测到更改时都会运行。不管是逐个角色,还是当用户点击开箱时,对我来说都没有关系。输入标签中的模式属性检查输入的内容是否与给定的正则表达式匹配,所以我希望我可以用某种函数为我做这件事。请参阅[这里](http://www.w3schools.com/tags/att_input_pattern.asp),因为它指的是我正在谈论的模式属性。 – user2494584
我想你想绑定到输入'更改'事件。如果你使用jquery,它会像'$(input).change(function({...}));'然后在里面你可以检查值是否匹配模式属性,并添加一个类或添加到你的颜色阵列 –