正则表达式只删除第一个“/”

时间:2012-04-11 17:02:36

标签: php javascript expression

我是正则表达式的新手,似乎无法弄清楚我必须如何解决这个问题:

我需要一个只允许numbersletters/的正则表达式。我写了这个:

/[^a-zA-Z0-9/]/g

我认为可以剥离第一个/,但不知道如何。

因此#/register/step1变为register/step1

谁知道我怎么能得到这个结果?

谢谢!

3 个答案:

答案 0 :(得分:2)

如果模式在字符串中是连续的,则可以使用非全局匹配:

var rx=/(([a-zA-Z0-9]+\/*)+)/;

var s='#/register/step1';

var s1=(s.match(rx) || [])[0];


alert(s1)>>>  returned value: (String) "register/step1"

答案 1 :(得分:0)

编辑:不知道为什么我没有先建议这个,但如果你只是强制执行模式而不是替换,你可以在检查模式之前使用strpos替换斜杠(如果存在) ),substr()或类似的东西。如果您已经使用了preg_replace(),那么您应该查看函数文档中的示例,它们非常相关

答案 2 :(得分:0)

"/register/step1".match(/[a-zA-Z0-9][a-zA-Z0-9/]*/); // ["register/step1"]

\ w等同于[^ A-Za-z0-9_],所以:

"/register/step1".match(/\w[\w/]*/); // ["register/step1"]