Javascript 使用正则表达式在开始和结束处添加点
您好,我正在尝试使用Javascript中的正则表达式验证输入,我的要求是字符串中最多只能有一个点,而不能在开头和结尾。 我有一个解决办法Javascript 使用正则表达式在开始和结束处添加点,javascript,regex,Javascript,Regex,您好,我正在尝试使用Javascript中的正则表达式验证输入,我的要求是字符串中最多只能有一个点,而不能在开头和结尾。 我有一个解决办法 /^[^\.].*[^\.]$/; 但问题是输入“x”被视为无效 有效输入如下 “x”、“x.x”、“xx.x”、“x.xx”之类 无效,比如“.x”和“x.”怎么样 怎么样 /^(?)[^\.]*.?[^\.]*(?!\).$/对于当前正则表达式,您的目标字符串长度应至少为2个字符,因为两个[^\.]部分都是必填字符 如果只有一个字符,您的正则表达式应该
/^[^\.].*[^\.]$/;
但问题是输入“x”被视为无效
有效输入如下
“x”、“x.x”、“xx.x”、“x.xx”之类
无效,比如“.x”和“x.”怎么样
怎么样
/^(?)[^\.]*.?[^\.]*(?!\).$/
对于当前正则表达式,您的目标字符串长度应至少为2个字符,因为两个[^\.]部分都是必填字符
如果只有一个字符,您的正则表达式应该包含一个额外的检查,您可以这样做:
^([^\.]|([^\.]+.?[^\.]+)$
对于当前正则表达式,您的目标字符串长度应至少为2个字符,因为两个[^\.]部分都是必填字符
如果只有一个字符,您的正则表达式应该包含一个额外的检查,您可以这样做:
^([^\.]|([^\.]+.?[^\.]+)$
的正确正则表达式
我的要求是字符串中最多只能有一个点('.')
这不可能是开始和结束
是
/^([^\.]|([^\.].[^\.])$/
或/^[^\.].[^\.]$/
接受字符串
包含超过1个点的。因此,它也将接受X..X
请检查工作片段也
验证资本(“XX.X”);
验证资本(“X.X”);
验证测试(“X…X”);
验证资本(“X”);
验证资本(“X.X.X”);
验证资本(“XX”);
验证限制(“XX”);
函数验证字符串(str){
console.log(/^([^\.]|([^\.]*.?[^\.])$/.test(str));
}
的正确正则表达式
我的要求是字符串中最多只能有一个点('.')
这不可能是开始和结束
是
/^([^\.]|([^\.].[^\.])$/
或/^[^\.].[^\.]$/
接受字符串
包含超过1个点的。因此,它也将接受X..X
请检查工作片段也
验证资本(“XX.X”);
验证资本(“X.X”);
验证测试(“X…X”);
验证资本(“X”);
验证资本(“X.X.X”);
验证资本(“XX”);
验证限制(“XX”);
函数验证字符串(str){
console.log(/^([^\.]|([^\.]*.?[^\.])$/.test(str));
}
Rule#763476关于如何编写可维护代码:如果您不知道如何使用regex编写smth,请不要使用regex。Rule#763476关于如何编写可维护代码:如果您不知道如何使用regex编写smth,请不要使用regex。这似乎允许使用多个点。您是对的。我已经将表达式更新为只允许1点。嘿,像'xx'
这样的值失败了<代码>?嗯,在将\.*更改为\之后,我忘记将点设置为可选。不过这似乎允许多个点。你是对的。我已经将表达式更新为只允许1点。嘿,像'xx'
这样的值失败了<代码>?嗯,在将\.*更改为\之后,我忘记了将点设置为可选的。您的正则表达式/^([^\.].*?[^\.])$/
对于'.x'
和'x.xx'
之类的值失败,因此还需要做更多的工作…您的正则表达式/^([^\.].[^\.].*.[^.].].[^.].].*?[^.]$/
对于'.x'
和'x.xx'
等值失败,因此还需要进行更多的工作。。。
/^([^\.]|([^\.]*.?[^\.]))$/