我对 JavaScript 没有太多经验,但我正在尝试创建一个标签系统,而不是使用@
or #
,而是使用/
.
var start = /#/ig; // @ Match
var word = /#(\w+)/ig; //@abc Match
我怎么能用 a/
而不是#
. 我试过做var slash = '/'
和添加+ slash +
,但失败了。
我对 JavaScript 没有太多经验,但我正在尝试创建一个标签系统,而不是使用@
or #
,而是使用/
.
var start = /#/ig; // @ Match
var word = /#(\w+)/ig; //@abc Match
我怎么能用 a/
而不是#
. 我试过做var slash = '/'
和添加+ slash +
,但失败了。
你可以像这样逃脱它。
/\//ig; // Matches /
或者只使用 indexOf
if(str.indexOf("/") > -1)
你需要/
用\
.
/\//ig // matches /
您可以通过在它前面加上一个\
(make it \/
) 来逃避它,或者您可以使用它new RegExp('/')
来避免逃避 regex。
请参阅JSFiddle 中的示例。
'/'.match(/\//) // matches /
'/'.match(new RegExp('/') // matches /
如果你想使用/
你需要用一个\
var word = /\/(\w+)/ig;
在正则表达式中,“/”是一个需要转义的特殊字符(AKA 通过在它前面放置一个 \ 来标记它,从而否定它可能提供的任何特殊功能)。
这是您需要的:
var word = /\/(\w+)/ig; // /abc Match
在此处阅读正则表达式特殊字符: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"]
\
在提取由和分隔的文本时,我遇到了与上述相关的两个问题/
,并找到了一个适合两者的解决方案,而不是new RegExp
在\\\\
开始时使用 。这些发现在 Chrome 和 IE11 中。
正则表达式
/\\(.*)\//g
不起作用。我认为//
尽管有转义字符,它仍被解释为评论的开始。正则表达式(在我的情况下同样有效,但不是一般)
/\b/\\(.*)\/\b/g
也不起作用。我认为第二个/
终止了正则表达式,尽管有转义字符。
对我有用的是表示/
为\x2F
,这是 的十六进制表示/
。我认为这比 using 更有效且更易于理解new RegExp
,但当然它需要注释来识别十六进制代码。
正斜杠是特殊字符,因此,您必须在正斜杠之前添加反斜杠才能使其工作
$patterm = "/[0-9]{2}+(?:-|.|\/)+[a-zA-Z]{3}+(?:-|.|\/)+[0-9]{4}/";
其中 / 代表搜索 / 这样你
对我来说,我试图匹配/
C# 中的日期。我只是通过使用来做到的(\/)
:
string pattern = "([0-9])([0-9])?(\/)([0-9])([0-9])?(\/)(\d{4})";
string text = "Start Date: 4/1/2018";
Match m = Regex.Match(text, pattern);
if (m.Success)
{
Console.WriteLine(match.Groups[0].Value); // 4/1/2018
}
else
{
Console.WriteLine("Not Found!");
}
JavaScript 也应该能够类似地使用(\/)
.