[英]how to do the regexp in javascript for this string?
我有以下可能的字符串:“ ”或“ 4”。 ','*。4'或'4.35'以上所有格式均有效,其他均无效。 基本上,如果我不在乎数字或文字字符,这就是我在PHP中用于验证的内容:
else if ( !ereg('^\*|.*\..*$',$bl_objver) )
现在,我想添加一些客户端验证,因此我将其转换为javascript:
var ver_reg = new RegExp("^\*|.*\..*$");
if (ver_reg.test(obj_ver) == false)
但是Firebug总是显示一些错误,例如:“无效的量词| ... * $”等。
有什么建议么?
(我不相信您的表达是正确的,但目前仅根据您的情况进行。)
使用RegExp对象,您需要转义斜线 :
var ver_reg = new RegExp("^\\*|.*\\..*$");
或者,您可以使用正则表达式文字表示法:
var ver_reg = /^\*|.*\..*$/;
那回答了您的直接问题,但是...
至于表达式,您肯定要更正的是每个应用于交替一侧的开始/结束锚点。
即您说的是<this>|<that>
,其中<this>
是^\\*
而<that>
是.*\\..*$
您想要的是^(?:<this>|<that>)$
以确保开始/结束标记不是替代项的一部分(但是使用?:
因为我们没有捕获组)。
因此,使用上面的第二个示例/^(?:\\*|.*\\..*)$/
此修复还需要应用于PHP版本(可以使用相同的语法)。
我也会质疑您对的使用.
而不是\\w
或[^.]
或类似名称,但是在不知道您实际在做什么的情况下,我不能肯定地说什么最有意义。
希望这可以帮助! :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.