You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于指定关键词的输入值两步清理操作实现需求

解决方案

前端JS修改(实现单按钮触发两步清理)

直接修改现有JS逻辑,通过两个正则表达式依次完成清理步骤:

<input type="text" id="numberInput" value="548 601 002 847 147">
<button onclick="cleanNumbers()">执行清理</button>

<script>
function cleanNumbers() {
    const input = document.getElementById('numberInput');
    let content = input.value.trim();
    const targetKeyword = '002';
    const skipBlock = '847';

    // 第一步:定位关键词,跳过其后空格及紧邻的指定数字块,删除剩余内容
    const step1Regex = new RegExp(`(.*?${targetKeyword}\\s+${skipBlock})(.*)`, 's');
    content = content.replace(step1Regex, '$1');

    // 第二步:删除关键词及其后的所有内容
    const step2Regex = new RegExp(`(.*?)(\\s*${targetKeyword}.*)`, 's');
    content = content.replace(step2Regex, '$1').trim();

    input.value = content;
}
</script>

后端PHP补充(如需服务器端验证处理)

如果需要在表单提交后通过PHP做后端处理,逻辑与前端一致:

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $rawInput = trim($_POST['numberInput']);
    $targetKeyword = '002';
    $skipBlock = '847';

    // 第一步清理
    $step1Pattern = "/(.*?$targetKeyword\\s+$skipBlock)(.*)/s";
    $processed = preg_replace($step1Pattern, '$1', $rawInput);

    // 第二步清理
    $step2Pattern = "/(.*?)(\\s*$targetKeyword.*)/s";
    $processed = preg_replace($step2Pattern, '$1', $processed);
    $processed = trim($processed);

    echo "清理结果:" . $processed;
}
?>

<form method="post">
    <input type="text" name="numberInput" value="548 601 002 847 147">
    <button type="submit">后端执行清理</button>
</form>

逻辑说明

  1. 第一步正则匹配关键词002及紧随其后的847,保留这部分之前的内容+002 847,删除847之后的所有数字块;
  2. 第二步正则匹配关键词002的位置,删除关键词及其后的所有内容,最终得到关键词之前的数字块;
  3. 示例输入548 601 002 847 147经过两步处理后,最终结果为548 601。

内容的提问来源于stack exchange,提问作者Israel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 12:24:51