我是正则表达式的新手,似乎不知道如何解决这个问题:
我需要一个“只允许”的正则表达式numbers
,letters
和/
. 我写了这个:
/[^a-zA-Z0-9/]/g
我认为有可能剥离第一个/
,但不知道如何。
所以#/register/step1
变成register/step1
谁知道我怎么能得到这个结果?
谢谢!
我是正则表达式的新手,似乎不知道如何解决这个问题:
我需要一个“只允许”的正则表达式numbers
,letters
和/
. 我写了这个:
/[^a-zA-Z0-9/]/g
我认为有可能剥离第一个/
,但不知道如何。
所以#/register/step1
变成register/step1
谁知道我怎么能得到这个结果?
谢谢!
如果模式在字符串中是连续的,则可以使用非全局匹配:
var rx=/(([a-zA-Z0-9]+\/*)+)/;
var s='#/register/step1';
var s1=(s.match(rx) || [])[0];
alert(s1)>>> returned value: (String) "register/step1"
编辑:不知道为什么我不首先建议这个,但如果你只是强制执行模式而不是替换,你可以在检查模式之前替换那个斜杠(如果它存在),使用 strpos(), substr () 或类似的东西。如果您已经在使用 preg_replace(),那么您应该查看函数文档上的示例,它们非常相关
"/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"]