JS正则表达式检查字符串的长度为字符数,介于最小值和最大值之间,不计算空格
JS regex to check a string is number of char long, between a min and max limit, not counting spaces
更新-用例:这是针对自定义元素上的自定义"模式"类属性。自定义属性/访问器接受任何正则表达式——我已经对这部分进行了编码。我需要这个特定的正则表达式供自己使用,而且我只有一个属性值(字符串)可以使用,而且它需要一个正则表达式,所以我必须让正则表达式执行所有必需的功能。
更新2:各位,如果您能想出一种方法,不使用带有需要正则表达式字符串的属性(validate=")的正则表达式,那么祝您好运。这是我的限制,也是我正在处理的问题。这是一个有效的问题,选民的支持并不能改变这一点,也没有帮助。认真地长大。
基本上,我需要一个正则表达式来检查字符串的长度是否符合所提供的最小和最大范围,而不计算字符串中的任何空格。例如:
var foo = ' a 1 b 2 - _ ';
在上面的变量foo
中,有6个非空格字符,给定它们的总数,它们将适合3-6、5-7、6-10等范围。我需要一种方法来统计所有这些非空格字符并检查它们是否适合某个范围。
注意:我不能接受这样的回答:"首先,用replace()从字符串中删除空格"或类似的东西——这一切都必须在regex中完成
如果你想要一个纯regex解决方案,我建议这样做:
function ok(text) {
return text.match(/^'s*('S's*){3,7}$/);
}
将3和7分别替换为最小值和最大值。
只需数一下:
var foo = ' a 1 b 2 - _ ';
var count = foo.match(/'s[0-9a-zA-Z-_'s]/g).length;
我能够通过去掉's
的出现并用空格表示它们来简化Charles提供的答案:
var text = 'foo bar';
text.match(/^ *('S *){3,7}$/);
// this would validate the string is between 3 and 7
// characters long, after trimming out spaces or line breaks
注意:我让Charles在发布这篇文章之前更新他的答案,我只想确保以后查看这个问题的人看到最简单的表达:)
相关文章:
- Html5输入属性的默认值,如最小值、最大值、大小等
- Angular JS在一行中查找最小值
- 识别滑块范围的最小值和最大值
- 求除零以外的最小值
- Javascript-如何使用函数找到数组的最小值
- 我有一个字段计算,如果结果低于 60,则需要显示最小值
- 如何在拖动后获得图表的最小值和最大值放大高图表
- AngularJs:在数字输入字段中设置验证的条件最小值和最大值
- HTML5范围滑块最小值和最大值
- 如何仅在存在最小值和最大值时才显示错误消息
- 在 JavaScript 事件中添加最小值和最大值
- 从 JavaScript 中的数组中获取最大值和最小值
- 获取整数对象属性名称的最小值和最大值
- 高图表 - 在缩放重置中设置最大值和最小值
- Java 脚本 设置日期的最小值和最大值属性
- 如何设置jQuery微调器的最大值和最小值
- 使用函数验证最小值和最大值之间的用户输入
- JS正则表达式检查字符串的长度为字符数,介于最小值和最大值之间,不计算空格
- 查找两个数组之间的公共最小值
- Symfony 3:我想创建一个滑块,过滤最小值和最大值之间的研究列表