繁体   English   中英

如何在JavaScript中对该字符串进行正则表达式?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM