我的问题是我只允许使用正则表达式中的代码。因此,您无法输入其他任何内容。
我尝试使用mysql的php foreach循环获取代码和长度。
var regArray = [<?php
$data = $pdo->query("SELECT PRODUCT_CODE AS code, ENDING AS ec FROM test")->fetchAll(PDO::FETCH_OBJ);
foreach ($data as $key) {
$separator = ($key != end($data)) ? ", " : '';
$std = "\"/^(" . $key->code . ")([a-zA-Z0-9]{" . $key->ec . "})$/\"";
echo $std.$separator;
}
?>];
//var regArray = ["/^(AAB)([a-zA-Z0-9]{7})$/", "/^(YYYYYYYYX)([a-zA-Z0-9]{9})$/"];
function onInput() {
let values = event.target.value
.split('\n')
.map(v => {
v = v.trim().toUpperCase();
regArray.forEach(function(entry) {
console.log(entry);
if (!v.match(entry)) {
v = v.substr(0, v.length - 1);
}
});
return v;
}).join('\n');
event.target.value = values;
console.log(event.target.value);
}
控制台显示我按下了键,但是在textarea中没有显示值。 我只想允许这些代码在数组中。