javascript - 使用正则表达式名词过滤器输入特定代码
问题描述
我想在 textarea 中输入特定的产品代码,但我的代码只允许输入一个字母,如果我按另一个键,它会删除最后一个字母。
我希望用户只允许输入 regexNounFilters 中的这些代码
$('#toFile').on('keypress', function(e) {
onInput(e);
});
const regexNounFilters = [<?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;
}
?>];
// const regexNounFilters = [/^(AAAB)([a-zA-Z0-9]{7})$/, /^(BBBBBC)([a-zA-Z0-9]{9})$/];
const extractNouns = string => string.split('\n').filter(line => regexNounFilters.some(re => line.trim().toUpperCase().match(re));
function onInput({
target
}) {
target.value = extractNouns(target.value).join('\n');
}
此代码必须只允许输入 7 位/字母长的 textarea AAAB 产品代码。和 9 位/字母长的 BBBBBC。
例子:
AAAB0000001
AAAB0000002
AAAB0000003
AAAB0000004
BBBBBC000000001
BBBBBC000000002
BBBBBC000000003
解决方案
推荐阅读
- python - 如何使用 python 请求正确地形成对该网站的 POST 请求
- sql-server - 唯一索引不起作用
- cassandra - 在 Cassandra 中订购
- knockout.js - 如果分钟/秒/毫秒为“0”,为什么 datetimepicker 会破坏年份值
- php - 在没有给定直接 IP 或域名的情况下处理服务器上的本地 php 文件
- html - 尝试使用 document.getElementbyid.innerHTML 向 HTML DOM 添加一个按钮
- python - 机器学习 - 具有文本数据类型的独立列
- python - 如何监控 USB 设备的插入?
- reactjs - 不同列表项的相同数据。反应.js
- javascript - javascript如何单线程和异步