首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript RegEx到白名单字符,我的方法有多糟糕?

首先,我们需要了解JavaScript RegEx是什么。JavaScript RegEx是JavaScript中的正则表达式对象,用于检查字符串是否符合特定的模式。在这个问题中,我们将使用JavaScript RegEx来检查字符串中的字符是否在白名单字符中。

问题:JavaScript RegEx到白名单字符,我的方法有多糟糕?

答案:

在这个问题中,我们需要检查字符串中的字符是否在白名单字符中。我们可以使用JavaScript RegEx来实现这个功能。以下是一个示例代码:

代码语言:javascript
复制
function checkWhiteList(str, whiteList) {
  const regex = new RegExp(`^[${whiteList}]+$`);
  return regex.test(str);
}

const whiteList = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
const input = "HelloWorld123";

if (checkWhiteList(input, whiteList)) {
  console.log("字符串符合白名单字符");
} else {
  console.log("字符串不符合白名单字符");
}

在这个示例中,我们定义了一个名为checkWhiteList的函数,该函数接受两个参数:strwhiteListstr是要检查的字符串,whiteList是允许的字符列表。我们使用RegExp对象创建一个正则表达式,该正则表达式检查字符串是否只包含白名单字符。然后,我们使用test方法测试输入字符串是否符合白名单字符。

这个方法并不糟糕,但是它可以进一步优化。例如,我们可以将白名单字符列表作为参数传递给函数,而不是将其硬编码到函数中。这将使函数更具可重用性。

总之,使用JavaScript RegEx可以轻松地检查字符串是否符合白名单字符。在这个示例中,我们使用了一个简单的正则表达式来实现这个功能,但是您可以根据需要进一步优化和扩展这个方法。

相关搜索:我的装饰师有多糟糕?kotlin多平台到javascript :方法的命名不受尊重让用户上传和存储文件名中包含国家字符的文件有多糟糕?Javascript到PHP代码的翻译对我有帮助?有什么方法可以在我的javascript中引入延迟吗?我有一个包含14个静态方法和4个静态属性的类 - 那很糟糕吗?Visual Studio是否有将javascript函数转换为字符串的方法/扩展?我是否有一种简单的方法来将数字分类到不同的范围?是否有任何预先构建的方法可以在JavaScript中查找给定字符串的所有排列?我想使用Scrapy来抓取网站,但不确定是否有绕过javascript的方法我有一个列表的请求编号(字符串)显示在我的应用程序中的表格格式,它有分页,所以有多页的目录我用ruby for String类编写的这个字符计数器有什么优化方法吗?是否有一种方法可以将最初作为字符串输入的数字字符数组复制到双向链表中如何在javascript中以字符串的形式获取iframe中的页面内容?我想要从<html>到</html>的所有内容我有一个数据文件,我想把这些数据插入到elastic search- kibana。有没有什么自动化的方法可以让我这样做呢?如果我有包含来自IV和加密数据的base64字符串,如何正确调用openssl_decrypt方法?我试图在一个液体代码上运行javascript字符串替换方法,该代码保存为varible中的字符串,但不起作用在python中是否有停用%d (intiger占位符)的选项?我要使用%d进行从字符串到日期时间的时间转换我尝试使用ajax将数组从控制器传递到javascript,但它没有以数组的形式返回,而是以字符串的形式返回如果我有一个Base64编码的字符串,如何使用DocumentFormat.OpenXML将图像绘制到MS Word文档中?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

正则表达式也会导致拒绝服务?探讨 ReDos(可能会中招哦)

那不是通过使用过滤器来匹配字符串、将字符串列入白名单和黑名单,从而使我们工作更轻松吗?是的,但是攻击者也可以利用它来使应用程序(服务器)屈服。让我们了解如何! 正则表达式是什么?...(address)) }); 上面是一段 JavaScript 代码(译者注:不会 JS 也无妨,对阅读本文影响不大,请继续阅读)。...标记,因此它会回溯前面的字母,并查看是否另一种方法来解析先前字符,以便可以验证整个字符串。在它最终发现绝不会返回 True 之前,这样回溯将会一直持续下去。 如您所知,回溯会导致大量时间消耗。...因此,始终建议在将应用程序部署生产环境之前正确测试正则表达式模式。 缓解措施 缓解这种情况最佳方法是根本不去使用它。尤其当你是新手时。 如有必要,请使用安全正则表达式。...这样只需寻找另一种替换方法来完成相同输出。 在使用正则表达式之前,请在 regex101.com 或其他在线资源等网站上测试它们。 安全扫描用户输入永远不会过时。 现在存在着很多正则表达式运算器。

1.1K30

JSON 和 JavaScript字符串化怪象

前言 在刚开始学习web开发时,JSON是看起来很简单一个东西。因为JSON字符串看起来就像一个文本,JavaScript对象最小子集。...在这篇文章中,想: 总结一下JavaScript中使用JSON(更确切说是JSON.stringifyAPI)时遇到怪事 通过从头开始实现JSON.stringify简化版本,来加深对JSON...但是有意思是,正如Crockford在他书《JavaScript悟道》中写那样,他承认:“关于JSON糟糕事情就是名字。”.../编码过程中,如果涉及不支持类型,事情会变得棘手起来。...cheatsheet.png 自定义编码 目前为止,我们所讨论是,JavaScript如何通过JSON.stringify将值编码为JSON字符默认行为,两种方式可以自行控制转换规则: 添加一个

1.7K10
  • Java利用拦截器处理XSS漏洞

    Java利用拦截器处理XSS漏洞 当应用程序新网页中包含不受信任、未经恰当验证或转义数据时,或者 使用可以创建 HTML 或 JavaScript 浏览器 API 更新现有的网页时,就会出 现...XSS 让攻击者能够在受害者浏览器中执行脚本,并劫持用户 会话、破坏网站或将用户重定向恶意站点。...在表单提交或者 url 参数传递前,对需要参数进行过滤; 2.过滤用户输入 检查用户输入内容中是否非法内容。...count = values.length; String[] encodedValues = new String[count]; for (int i = 0; i < count; i++) { //白名单放行只有...,白名单放行      *      * @param paramName      * @return      */ private static boolean isWhitelist(String

    91230

    你应该学习正则表达式

    在本教程中,将尝试在各种场景、语言和环境中对Regex语法和使用进行简明易懂介绍。 此Web应用程序是用于构建、测试和调试Regex最喜欢工具。...[0-9]—— 09之间任何数字 |——OR操作数 2[0-3]——2,后面跟0和3之间任何数字(即20-23) :——匹配:字符 [0-5]——05之间任何数字 \d——09之间任何数字...真的不建议在你应用程序中使用上述表达式;最好是使用一个信誉电子邮件验证库或继续探索更完整电子邮件验证Regex。...\/——匹配/符号(我们转义/字符) \*+——匹配一个或多个*符号(再次,我们使用\来转义*字符)。...这是另一个实例,对此强烈建议你使用经过良好测试库和/或服务,以及使用白名单而不是黑名单,以保护你应用程序免受恶意输入。

    5.3K20

    DX-Seo与WP-codebox插件冲突解决方法

    虽然代码复制功能依然有效,但是用户体验就非常糟糕了,这是无法忍受!于是开始傻瓜式 DEBUG。 解决过程:由于俺只是一个运维工程师,并不是开发人员,对于这些网页代码,确实只是浮于皮毛层次。...想,既然出错原因是因为给链接加上了 nofollow 属性,那我排除掉【点击复制】这个链接不就可以了么??进入 dx-seo 自动 nofollow 选项一看,还真有白名单呢!...于是将 wp-codebox【点击复制】按钮链接【javascript:;】加入白名单,发现这个问题已得到解决!...再重复一遍解决 DX-Seo 和 wp-codebox 冲突导致 codebox 点击复制功能出错解决方法: 在 DX-Seo 自动 nofollow 设置白名单中加入  javascript:; ...写在最后:通过刚刚排除法,猜测上一篇文章提到Crayon Syntax Highlighter导致服务器卡死,估计也是和 DX-Seo 同样冲突,估计解决方法也差不多,暂时先放一放,有时间再去测试下

    79790

    JS正则表达式完整版

    1.2 纵向模糊匹配 纵向模糊指的是,一个正则匹配字符串,具体某一位字符时,它可以不是某个确定字符,可以多种可能。 其实现方式是使用字符组。...但是其是贪婪,它会尽可能匹配。你能给我6个,就要5个。你能给我3个,就3要个。反正只要在能力范围内,越多越好。 我们知道有时贪婪不是一件好事(请看文章最后一个例子)。...相关案例 至此括号作用已经讲完了,总结一句话,就是提供了可供我们使用分组,如何用就看我们了。 5.1 字符串trim方法模拟 trim方法是去掉字符开头和结尾空白符。两种思路去做。...其匹配过程是: 其中子表达式b{1,3}表示“b”字符连续出现13次。 2. 回溯匹配 如果目标字符串是”abbc”,中间就有回溯。 图中第5步红颜色,表示匹配不成功。...答:你别看我匹配慢,但是编译快啊,而且还有趣哦。 第5章 正则表达式拆分 对于一门语言掌握程度怎么样,可以两个角度来衡量:读和写。 不仅要求自己能解决问题,还要看懂别人解决方案。

    3.1K40

    第一章 正则表达式字符匹配攻略

    而模糊匹配,两个方向上“模糊”:横向模糊和纵向模糊。 1.1 横向模糊匹配 横向模糊指的是,一个正则可匹配字符长度不是固定,可以是多种情况。 其实现方式是使用量词。...比如/ab{2,5}c/表示匹配这样一个字符串:第一个字符是“a”,接下来是25个字符“b”,最后是字符“c”。...1.2 纵向模糊匹配 纵向模糊指的是,一个正则匹配字符串,具体某一位字符时,它可以不是某个确定字符,可以多种可能。 其实现方式是使用字符组。...例如[abc],表示匹配一个字符,它可以是“a”、“b”、“c”之一。 2.1 范围表示法 如果字符组里字符特别的话,怎么办?可以使用范围表示法。...但是其是贪婪,它会尽可能匹配。你能给我6个,就要5个。你能给我3个,就3要个。反正只要在能力范围内,越多越好。 我们知道有时贪婪不是一件好事(请看文章最后一个例子)。

    1.8K101

    一文掌握开发利器:正则表达式

    回溯法通常用最简单递归方法来实现,在反复重复上述步骤后可能出现两种情况: 找到一个可能存在正确答案 在尝试了所有可能分步方法后宣告该问题没有答案 在最坏情况下,回溯法会导致一次复杂度为指数时间计算...正则引擎尽可能地(贪婪)匹配 b{1,3}中 b。 正则引擎去匹配 b,发现没 b 了,糟糕!赶紧回溯! 返回 b{1,3}这一步,不能这么贪婪,少匹配个 b。 正则引擎去匹配 b。...正则引擎去匹配 c,糟糕!怎么个 b 挡着,匹配不了 c 啊!赶紧回溯! 返回 b{1,3}这一步,不能这么懒惰,匹配个 b。 正则引擎再去匹配 c,糟糕!怎么还有 b 挡着,匹配不了 c 啊!...在正则输入区输入你正则 regex1,查看 Create 面板,就会发现面板上显示了正则创建过程(或者说是匹配规则),在 Test 面板区域输入你测试文本,满足 regex1 匹配规则部分会高亮显示...结语 曾经一次因为写一个性能恶劣正则表达式,导致代码执行过程因为性能问题挂掉。

    1.2K130121

    django 1.8 官方文档翻译:13-12 验证器

    如果一个基于类验证器用于validators模型字段选项,你应该通过添加deconstruct() 和__eq__() 方法确保它可以被迁移框架序列化。...编译正则表达式字符regex时所用标识。如果regex是预编译正则表达式,并且覆写了flags,会产生TypeError异常。默认为 0。...通常,正则表达式(domain_regex 属性) 用于验证 @ 符号后面的任何东西。但是,如果这个字符串在白名单里,就可以通过验证。如果没有提供,默认白名单是 ['localhost']。...其它不包含点符号域名不能通过验证,所以你需要按需将它们添加进白名单。...Django 文档协作翻译小组人手紧缺,兴趣朋友可以加入我们,完全公益性质。

    1.7K30

    JavaScript·JavaScript 正则技巧

    ,一个正则匹配字符串,具体某一位字符时,它可以不是某个确定字符。...等价 {0, 1},表示出现或不出现 + 等价 {1,},表示至少出现 1 次 * 等价 {0,},表示出现任意次 贪婪匹配与惰性匹配 贪婪匹配会尽可能匹配,表现如下: const regex =...首先考虑匹配 6-12 位数字、大小写字母: const regex = /^[0-9A-Za-z]{6-12}$/g 然后需要判断至少包含两种字符两种解法。...、*、+ 3 位置和序列 ^、$、\元字符、一般字符 4 管道符 ` ` 5 元字符 JavaScript 正则里用到字符 ^、$、.、*、+、?...因为捕获分组需要占用内存来存储捕获分组和分支里数据 独立出确定字符,如 a+ 可以修改为 aa*,后者比前者确定了字符 a。 提取分支公共部分,如 this|that 修改为 th(:?

    1.5K20

    资源 | 十五分钟完成Regex五天任务:FastText,语料库数据快速清理利器

    该项目的作者表示,使用正则表达式(Regex)需要 5 天任务在新方法中只需要 15 分钟即可完成。...为了解决这个问题,写了一个正则表达式(Regex),用标准化命名来替换所有已知同义词。...Regex 会将「Javascripting」替换为「JavaScript」,这解决了一个问题,却又带来了另一个问题。 有些人遇到问题时会想:「没关系,我们正则表达式。」现在问题变成了两个。...随着关键词数量增加,Regex 耗时呈线性增长,而对于 FlashText 来说并没有影响。 FlashText 可以把 5 天工作缩短 15 分钟! ?...由于这是一个字符匹配过程,我们可以轻易地在进行l 时候跳过整个like,因为 start 并没有和 l 相连。这使得跳过缺失单词过程变得非常快。

    1.4K110

    《现代Javascript高级教程》正则表达式常见问题与练习

    问题一:JavaScript字符串与正则表达式操作 在 JavaScript 中,我们可以使用三个方法来操作字符串和正则表达式:test、exec 和 match。...RegExp.prototype.test(): test 是 JavaScript 中正则表达式对象一个方法,用于检测正则表达式对象与传入字符串是否匹配。...在 match 方法中,括号作用两个: 分组 捕获。捕获意思是将用户指定匹配到字符串暂存并返回给用户。 当传入正则表达式没有使用 g 标志时,返回一个数组。...问题四:在正则表达式中替换字符串 在 JavaScript 中,我们可以使用 String.prototype.replace() 方法来替换字符串中内容。正则表达式可以用于指定要替换模式。...在上述示例中,我们使用 replace 方法字符串中 "World" 替换为 "JavaScript"。

    17140

    黑科技 | 用Python只花十五分钟完成正则表达式五天任务量

    该项目的作者表示,使用正则表达式(Regex)需要 5 天任务在新方法中只需要 15 分钟即可完成。...为了解决这个问题,写了一个正则表达式(Regex),用标准化命名来替换所有已知同义词。...Regex 会将「Javascripting」替换为「JavaScript」,这解决了一个问题,却又带来了另一个问题。 有些人遇到问题时会想:「没关系,我们正则表达式。」现在问题变成了两个。...随着关键词数量增加,Regex 耗时呈线性增长,而对于 FlashText 来说并没有影响。 FlashText 可以把 5 天工作缩短 15 分钟!...由于这是一个字符匹配过程,我们可以轻易地在进行l 时候跳过整个like,因为 start 并没有和 l 相连。这使得跳过缺失单词过程变得非常快。

    1.5K90

    第七章 正则表达式编程

    比如,目标字符串是"html,css,javascript",按逗号来切分: var regex = /,/; var string = "html,css,javascript"; console.log...本文重点列出一些容易忽视地方,以飨读者。 2.1 search和match参数问题 我们知道字符串实例那4个方法参数都支持正则和字符串。...字符四个方法,每次匹配时,都是从0开始,即 lastIndex属性始终不变。 而正则实例两个方法 exec、 test,当正则是全局匹配时,每一次匹配完成后,都会修改 lastIndex。...当第二个参数是字符串时,如下字符特殊含义: $1, $2,..., $99匹配第1~99个分组里捕获文本$& 匹配到子串文本$``匹配到子串左边文本$' 匹配到子串右边文本$$` 美元符号...2.8 使用构造函数需要注意问题 一般不推荐使用构造函数生成正则,而应该优先使用字面量。因为用构造函数会写很多 \。

    1.8K60

    一次对 Tui Editor XSS 挖掘与分析

    但是还是由于前面说到isXSSAttribute函数,href属性中javascript:这个关键字仍然会被拦截。解决方法两种。...这个正则是问题,主要问题3个,根据这两个问题构造了3种绕过方法。...但是还记得正则里贪婪模式吧,默认情况下,正则引擎会尽可能地匹配满足当前模式字符,所以,如果此时有两个onload=,那么这个[^>]*将会匹配到第二个,而将它删除掉,而第一个onload=将被保留...先通过找到白名单恶意方法构造了需要点击触发XSS Payload,又通过条件竞争构造了4个无需用户交互XSS Payload。...这里要说一点是,最初只想到了使用x=">"这种方法绕过正则,但在写文章时候又想到了贪婪模式相关方法

    34340

    Js 中正则表达式

    JavaScript正则表达式(Regex)是用于在文本中匹配特定字符字符模式。它们用于验证表单、解析字符串、替换文本等。...在 JavaScript 中,可以两种方式编写正则表达式:第一种方法:const regex = /ab+c/;第二种方法:const regex = new RegExp("ab+c");不管使用哪种语法...此外,一些元字符,如 \w、\W、\d、\D、\s,它们特殊含义,如匹配单词字符、非单词字符、数字、非数字、空白字符等。标志(flags)是修改正则表达式行为可选参数。...常见标志 g(全局匹配)和 i(大小写不敏感匹配)。希望这些翻译能够帮助您更好地理解 JavaScript正则表达式!如有任何疑问,请随时提出。...正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

    14910

    讲给前端正则表达式(1):基本概念

    翻译:疯狂技术宅 作者:wanago 来源:wanago.io ? 正则表达式(regex)是定义搜索模式字符序列。由于对程序员日常工作非常有用,所以在 JavaScript 中也支持它。...希望在结束本系列后,你将能够轻松写出自己正则表达式。 ? 创建正则表达式方法JavaScript 中可以通过两种方式去构造正则表达式。...); 创建对象之后,你可以在对象上调用 test 方法方法得到字符串后,如果模式匹配,则返回 true: regex.test('dog'); // true regex.test('hot-dog...在许多情况下你可能会希望使用更复杂模式。 特殊字符 除了寻找某个字符简单出现,还可以做更多事情。一种方法是使用特殊字符。...总结 了所有这些信息,你就可以开始编写自己正则表达式并将其使用。强烈建议你使用这个很棒工具【https://regex101.com/】,它会为你提供帮助。

    1.3K10

    全网最全,最详细,最友好 Typescript 新手教程

    在写这篇指南之前,并不确定,但每天都看到很多初学者对TypeScript感兴趣。如果你决定这样做,要意识,在你早期时候,同时学习TypeScript和JavaScript是很难。...一开始,你不会完全理解TypeScript为什么有意义,毕竟它在变成JavaScript代码之前已经被剥离了。你会问:“TypeScript什么用?”这是个好问题,朋友。...想知道是否一种方法可以在IDE中检查这个函数,而不需要运行代码或使用Jest测试它。这可能吗?...什么是类型,JavaScript什么问题? JavaScript类型,如果你在知道字符串、布尔值、数字、对象等等之前使用过这种语言。...match方法只对字符串有效,并且我们索引可能返回一个数字。为了修复这个错误,我们可以使用anyas作为一个解决方案: interface Link { description?

    6K40
    领券