本文旨在解决从模板字符串和填充字符串中提取填空内容的问题。例如,给定模板字符串 ____ world 和用户输入的字符串 Hello world,我们需要提取用户在填空中输入的 Hello。该问题在需要逆向工程用户答案的场景中非常有用,例如,在编程练习中,我们需要根据用户提交的代码片段来提取他们填写的关键变量或函数。
为了实现这一目标,我们可以使用正则表达式和捕获组。以下是一个名为 fillBlanks 的 JavaScript 函数,它接受模板字符串和填充字符串作为输入,并返回一个包含所有提取的填空内容的数组。
const fillBlanks = (template, response, match = response .match (new RegExp ( template .replace(/[/-\^$*+?.()|[]{}]/g, '\$&') // 转义正则表达式特殊字符 .replace(/ /g, '\s*') // 压缩空格 .replace(/____/g, (s) => `(.*)`), // 添加捕获组 "m" // 多行匹配 ))) => match && match .slice (1) console .log (fillBlanks ('____ World!', 'Hello World!')) //=> ["Hello"] console .log (fillBlanks ('H____o ____World!', 'Hello World!')) //=> ["ell", ""] const template = `____ = ____("Enter your name") ____(name)` const answer = `name = input("Enter your name") print(name)` console .log (fillBlanks (template, answer)) //=> ["name", "input", "print"]
代码解释:
注意事项:
总结:
本文介绍了一种使用 JavaScript 从模板字符串和填充字符串中提取填空内容的方法。该方法使用正则表达式匹配和捕获组,能够识别由特定占位符表示的填空,并提取用户在这些填空中输入的值。该方法能够处理空格、空字符串和嵌入单词内部的填空等多种情况。但是,需要注意空格处理和精度问题,并采取适当的安全措施。
以上就是从模板字符串和填充字符串中提取填空内容的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号