javascript - 正则表达式 - 重复或分布的字符

标签 javascript java

正则表达式新手,希望获得一些帮助。

我的任务是根据允许的重复或分布字符数量构建正则表达式。

这是我构建的正则表达式,但它不起作用,仅匹配重复的字符。

/(.).*\1{2}/g

如果我的字符串是“test”,则正则表达式应该找到匹配项。如果量词是 3 并且我的字符串是 "1234343" 正则表达式应该找到匹配项。

此任务是一个更大项目的一部分,用户可以在 html 页面上配置用户名和密码的设置,并在表单提交时调用 java servlet 来构造正则表达式并将其保存到数据库中。

每当用户导航到重置密码页面时,它都会将正则表达式发送回 JavaScript 以验证新密码,验证也将在服务器端完成。

我正在尝试构建一个 javascript 友好的正则表达式,它也可以在 java 中工作。

非常感谢任何提示。我知道 javascript 中不支持lookbehind,但我不知道在构建正则表达式时还需要记住什么。

最佳答案

我认为您正在寻找:

(.)(.*\1){2}

这将找到一个重复3次的字符。

(.)_________ 捕获字符的第一次出现。
___(.*\1)___ 在 0 个或多个其他字符之后再次查找该字符...
_________{2} 重复两次,总共出现 3 次。

您需要 (___) 围绕您想要 {__} 重复的部分。并且您希望 {__} 中的出现次数少 1,因为 (.) 已经计为 1 次出现。

关于javascript - 正则表达式 - 重复或分布的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48897864/

相关文章:

java - 使用 JWindow/JPanel 的自定义启动画面在尝试第二次显示时无法正确加载图像

javascript - md-checkbox 的行为类似于单选按钮 - AngularJS

javascript - AngularJS 常量未定义不是对象

javascript - 谷歌地图未在 vue.js 中显示

java - React Native - 值 '3130049174' 不适合 32 位有符号整数

Java do-while 在其自己的类的方法内循环

java - 哈希码返回整数值

java - 如何使用日期类检查产品是否在最后一个到期周

javascript - 使用 jquery 的 $.post 的非常简单的代码显示整个代码而不是 echo

javascript - 从 AngularJS 中的 Promise.then() 返回 API 响应