PHP&HTML实现不区分大小写判断字符与字母条件是否匹配
实现字母大小写不敏感的字符匹配功能
需求说明
实现不区分字母大小写的匹配判定逻辑:只要用户输入的字母与设定的条件字母一致就判定为真,即A=a、B=b,匹配成功后输出对应预设内容。
匹配示例
- 输入
D或d匹配目标d判定为真,输出:3 - DEF - 输入
A或c匹配目标a或c判定为真,输出:2 - ABC
优化实现方案
你当前代码中逐个判断字母大小写的写法虽然可以正常运行,但逻辑冗余,更简洁的实现方案是先将用户输入的字符统一转为全大写(或全小写),再和统一格式的条件字符做匹配,无需分别判断两种大小写格式,优化后的完整代码如下:
<!DOCTYPE html> <html lang = "zh-CN"> <head> <title>字母匹配测试</title> <!-- 必要meta标签 --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- BOOTSTRAP 5 --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous"> <!-- jQuery --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"> </script> <!-- Sweet Alert 2 --> <script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"> </script> </head> <body> <!-- 输入输出区域 --> <!-- 输入区域 --> <div class="card"> <div class="card-header"> 输入字母: </div> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <div class="card-body"> <div class="row"> <div class="col-12"> <input type="text" name="telephoneCharacter" placeholder="请输入字母" class="form-label input-responsive" maxlength = "1"> </div> <div class="col-12"> <div class="col-auto d-flex justify-content-sm-end"> <input type="submit" class="btn btn-dark" value="提交"> </div> </div> </div> </div> </form> </div> <!-- 输出区域 --> <div class="card-img-bottom d-flex justify-content-center"> <div class="text-uppercase"> <p class="Display-1"> 输出结果: </p> <div class="container-fluid"> <?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { // 去除输入首尾空白后统一转为大写 $character = strtoupper(trim($_POST['telephoneCharacter'])); if (in_array($character, ['A','B','C'])) { print "<p class='text-muted h4'> 2 - ABC</p>"; } else if (in_array($character, ['D','E','F'])) { print "<p class='text-muted h4'> 3 - DEF</p>"; } else if (in_array($character, ['G','H','I'])) { print "<p class='text-muted h4'> 4 - GHI</p>"; } else if (in_array($character, ['J','K','L'])) { print "<p class='text-muted h4'> 5 - JKL</p>"; } else if (in_array($character, ['M','N','O'])) { print "<p class='text-muted h4'> 6 - MNO</p>"; } } ?> </div> </div> </div> <!-- BOOTSTRAP 5 脚本 --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script> </body> </html>
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

