如何在逗号前检查字符串中的开括号或闭括号
How to check open or close parentheses in string before comma?
我对文本字段有一个条件,即每个字符串在以逗号结尾之前都应该有开括号和闭括号?
示例:
valid text values- stack(2),flow(2),over(4),temp(0)
Invalid - stack(2),flow,over(4),temp(0)
因此,每个字符串在以逗号结尾之前都应该有()括号。如何检查这种情况,请告知。
在每个RegExp '([^,]+')
出现之前计数()的数量,它应该等于comas的数量+1
以下是测试用例的工作解决方案:http://jsfiddle.net/c8t26/1/
function testCases(str){
return (
str.match(new RegExp("''([^,]+'')","g")).length == str.split(",").length
);
}
这是我的解决方案,用逗号分割字符串,然后用regexp过滤,然后与原始大小进行比较。
演示
var a = 'stack(2),flow(2),over,temp ';
var arr = a.split(',');
var temp = arr;
arr = arr.filter(function(el){
var reg = new RegExp(/'('d+')$/);
el = el.trim();
return !!reg.test(el)
});
if(arr.length !== temp.length){
alert(temp.length - arr.length + ' wrong');
}
过滤器支持
使用for循环遍历字符串的每个字符。使用一个标志,例如openParenthes,增加每个的计数(减少每个的计数)。如果你最终得到的不是0,它是无效的,如果你得到的是小于0的,它是有效的。在你的情况下,如果你不能打开多个括号,那么如果你的变量在循环的任何迭代中都大于1,它就是无效的。如果你也需要寻找昏迷,就在你发现a)检查[i+1]是否是逗号的时候。注意它是否是字符串的末尾,这样就不会出现越界错误。要么写一个特殊的大小写(if),要么在末尾添加一些伪字符(不是)。
相关文章:
- 如何检查字符串的一部分与数组匹配
- Regex模式,用于检查字符串中每个单词的第一个字母(如果是Javascript中的大写字母)
- 将数据作为字符串从C#发送到Javascript-如何检查字符串
- jQuery检查字符串前面是否有其他字母
- 如何在 AngularJS 中检查字符串是否为空
- 检查字符串是否在字典内的数组中
- 检查字符串是否包含计算
- 如何根据数组中的元素检查字符串
- 检查字符串是否等于一个单词和一个数字
- 如何检查字符串是否包含非英语字符列表
- 检查字符串是否包含数组中的某个字符串
- 如何检查字符串是否为回文JavaScript〔CLOSED!〕
- 检查字符串是否为有效的html标记
- Javascript正则表达式,用于检查字符串是否为有效数字
- Regex:检查字符串的任何部分是否包含SSN
- 使用AngularJS和Angular Translate如何检查字符串是否已被翻译
- 检查字符串中的特定字符
- Javascript Regex检查字符串是否包含不属于的单词
- 如何在逗号前检查字符串中的开括号或闭括号
- 如何在Javascript中检查字符串是否包含多个空格并返回