正则表达式允许一个逗号,而不是在JavaScript中字符串的开头或结尾
我不太擅长正则表达式,我需要3种不同的正则表达式,它们遵循以下规则:正则表达式允许一个逗号,而不是在JavaScript中字符串的开头或结尾,javascript,regex,Javascript,Regex,我不太擅长正则表达式,我需要3种不同的正则表达式,它们遵循以下规则: 我需要一个只允许字符串中有一个逗号的正则表达式 我需要一个正则表达式,它不允许在字符串开头使用逗号,但仍然只允许使用一个逗号 我需要一个正则表达式,它不允许在字符串末尾使用逗号,但仍然只允许使用一个逗号 对于第一条规则:21天可以,但是21天,32天不可以 对于第二条规则:,21不合适 对于第三条规则:21,就不行了 到目前为止,我已经在下面创建了一个正则表达式,它适用于上面的规则,但我想知道它是否可以拆分为三个不同的正则表达
21天
可以,但是21天,32天
不可以
对于第二条规则:,21
不合适
对于第三条规则:21,
就不行了
到目前为止,我已经在下面创建了一个正则表达式,它适用于上面的规则,但我想知道它是否可以拆分为三个不同的正则表达式,可以适用于上面的三个规则
^[a-z0-9A-Z&.\/'_ ]+(,[a-zA-Z0-9&.\/'_ ]+)?$
任何帮助都将不胜感激。
谢谢这个正则表达式应该可以完成这项工作
^[^,]+,[^,]+$
说明:
[^,]+
->至少一次不使用逗号
,
->逗号(显然)
[^,]+
->至少一次(再次)不要使用逗号这个正则表达式应该完成这项工作
^[^,]+,[^,]+$
说明:
[^,]+
->至少一次不使用逗号
,
->逗号(显然)
[^,]+
->至少一次(再次)不使用逗号
?
):^[^,]*,[^,]*$
^[^,]+,[^,]*$
^[^,]*,[^,]+$
[^,]
表示“不是逗号的字符”
?
):^[^,]*,[^,]*$
^[^,]+,[^,]*$
^[^,]*,[^,]+$
[^,]
表示“不是逗号的字符”
^(?=.*)
注意:所有这些模式都允许在输入中使用零或一个逗号。如果您严格要求使用一个逗号,请在每个逗号前面加上
^(?=.*)
简单的字符串操作可以处理此问题:
函数testForComma(str){
//逗号不是第一个字符
//逗号只存在一次
//逗号不是最后一个字符
返回str.indexOf(',')>=1&&
str.lastIndexOf(',')==str.indexOf(','))&&
str.lastIndexOf(',')!=str.length-1;
}
log(testForComma(',');
log(testForComma(',');
log(testForComma(',');
log(testForComma(',');
log(testForComma(','))代码>简单的字符串操作可以处理此问题:
函数testForComma(str){
//逗号不是第一个字符
//逗号只存在一次
//逗号不是最后一个字符
返回str.indexOf(',')>=1&&
str.lastIndexOf(',')==str.indexOf(','))&&
str.lastIndexOf(',')!=str.length-1;
}
log(testForComma(',');
log(testForComma(',');
log(testForComma(',');
log(testForComma(',');
log(testForComma(','))代码>简单表达式类似于-^[^,]+,[^,]+$简单表达式类似于-^[^,]+,[^,]+$示例输入和输出会很有帮助。示例输入和输出会很有帮助。*-修饰符允许匹配零字符,为什么不?他没有具体说明逗号之前或之后必须是什么。这里必须有逗号以外的东西,我明确地指定了它。对于这种情况,这是正确的方法。当逗号前面有零个字符时,逗号在开头:规则2每个正则表达式都有不同的规则,他不希望正则表达式与所有三个规则都匹配。:)哦,误解了这个问题,是的*-修饰符允许匹配零字符,为什么不?他没有具体说明逗号之前或之后必须是什么。这里必须有逗号以外的东西,我明确地指定了它。对于这种情况,这是正确的方法。当逗号前面有零个字符时,逗号在开头:规则2每个正则表达式都有不同的规则,他不希望正则表达式与所有三个规则都匹配。:)哦,我误解了这个问题,是的