I don't have much experience with JavaScript but i'm trying to create a tag system which, instead of using @
or #
, would use /
.
var start = /#/ig; // @ Match
var word = /#(\w+)/ig; //@abc Match
How could I use a /
instead of the #
. I've tried doing var slash = '/'
and adding + slash +
, but that failed.
You can escape it like this.
/\//ig; // Matches /
or just use indexOf
if(str.indexOf("/") > -1)
您需要使用\\
来对/
进行转义。
/\//ig // matches /
如果要使用/
,则需要使用\\
对其进行转义
var word = /\/(\w+)/ig;
In regular expressions, "/" is a special character which needs to be escaped (AKA flagged by placing a \\ before it thus negating any specialized function it might serve).
Here's what you need:
var word = /\/(\w+)/ig; // /abc Match
Read up on RegEx special characters here: http://www.regular-expressions.info/characters.html
You can also work around special JS handling of the forward slash by enclosing it in a character group, like so:
const start = /[/]/g;
"/dev/null".match(start) // => ["/", "/"]
const word = /[/](\w+)/ig;
"/dev/null".match(word) // => ["/dev", "/null"]
For me, I was trying to match on the /
in a date in C#. I did it just by using (\\/)
:
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 should also be able to similarly use (\\/)
.
I encountered two issues related to the foregoing, when extracting text delimited by \\
and /
, and found a solution that fits both, other than using new RegExp
, which requires \\\\\\\\
at the start. These findings are in Chrome and IE11.
The regular expression
/\\(.*)\//g
does not work. I think the //
is interpreted as the start of a comment in spite of the escape character. The regular expression (equally valid in my case though not in general)
/\b/\\(.*)\/\b/g
does not work either. I think the second /
terminates the regular expression in spite of the escape character.
What does work for me is to represent /
as \\x2F
, which is the hexadecimal representation of /
. I think that's more efficient and understandable than using new RegExp
, but of course it needs a comment to identify the hex code.
Forward Slash is special character so,you have to add a backslash before forward slash to make it work
$patterm = "/[0-9]{2}+(?:-|.|\/)+[a-zA-Z]{3}+(?:-|.|\/)+[0-9]{4}/";
where / represents search for / In this way you
You can escape it by preceding it with a \\
(making it \\/
), or you could use new RegExp('/')
to avoid escaping the regex .
See example in JSFiddle .
'/'.match(/\//) // matches /
'/'.match(new RegExp('/') // matches /
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.