我没有太多的JavaScript经验,但我正在尝试创建一个标签系统,而不是使用@或#将使用/.
var start = /#/ig; // @ Match
var word = /#(\w+)/ig; //@abc Match
Run Code Online (Sandbox Code Playgroud)
我怎么能用/而不是#.我尝试过var slash = '/'并添加+ slash +,但失败了.
Ben*_*ick 100
你可以像这样逃避它.
/\//ig; // Matches /
Run Code Online (Sandbox Code Playgroud)
或者只使用indexOf
if(str.indexOf("/") > -1)
Run Code Online (Sandbox Code Playgroud)
在正则表达式中,"/"是一个需要转义的特殊字符(通过在它之前放置\来标记AKA,从而否定它可能服务的任何专用函数).
这就是你需要的:
var word = /\/(\w+)/ig; // /abc Match
Run Code Online (Sandbox Code Playgroud)
阅读RegEx特殊字符:http://www.regular-expressions.info/characters.html
您还可以通过将正斜杠括在一个字符组中来解决对正斜杠的特殊 JS 处理,如下所示:
const start = /[/]/g;
"/dev/null".match(start) // => ["/", "/"]
const word = /[/](\w+)/ig;
"/dev/null".match(word) // => ["/dev", "/null"]
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以通过在它前面加上\(make it \/)new RegExp('/')来转义它,或者您可以使用它来避免转义 regex。
请参阅JSFiddle 中的示例。
'/'.match(/\//) // matches /
'/'.match(new RegExp('/') // matches /
Run Code Online (Sandbox Code Playgroud)