【问题标题】:Regular expression to limit occurrences of specific character限制特定字符出现的正则表达式
【发布时间】:2016-05-16 05:54:00
【问题描述】:

我正在寻找可以输入特殊字符出现次数限制的正则表达式。

示例:我必须将整个文本中的* 限制为5 的最大计数,所以它应该是stack***over*f**low

我在我的指令中尝试过这样的:

var transformedInput = text.replace(/[^0-9][*]{6}/g, '');

但它不起作用。有人可以帮我解决这个问题吗?

【问题讨论】:

  • /([^*]*\*[^*]*){5}/ 应该可以解决问题。
  • 请准确说明您需要做什么。为什么要更换?输入对应的输出是什么?
  • 如果用户输入的数量超过特定数量,例如:当用户输入的数量超过该数量时,* 的数量为 5,我将替换字符空白。如果您有其他问题,请告诉我。
  • @Kelvin:: 感谢您的回复。使用这个表达式 /([^*]**[^*]*){5}/ 我们可以实现限制最多五个 * 如果我想限制最多五个 * 和五个数字我可以如何实现相同的另一个与相同的查询表达。请回复。

标签: javascript angularjs regex angularjs-directive


【解决方案1】:

不确定为什么需要替换,也许您正试图阻止输入更多星号?无论如何,我建议您稍微扩大您的范围,并允许更多的 JS 来完成一些繁重的工作。如果您想阻止输入字符,您可以检查每个按键事件的星号长度。

var str = 'This* is a ** test string. **';
var count = (str.match(/\*/g) || []).length;
if (count >= 5) {
  alert('doing something...')
}
else {alert(count);}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    相关资源
    最近更新 更多