3

我是正则表达式的新手,似乎不知道如何解决这个问题:

我需要一个“只允许”的正则表达式numbers,letters/. 我写了这个:

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

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

所以#/register/step1变成register/step1

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

谢谢!

4

3 回答 3

2

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

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

var s='#/register/step1';

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


alert(s1)>>>  returned value: (String) "register/step1"
于 2012-04-11T17:17:44.637 回答
0

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

于 2012-04-11T17:16:20.957 回答
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"]
于 2012-04-11T17:26:49.140 回答