This question already has answers here:
Regex - Should hyphens be escaped? [duplicate]
(3个答案)
4年前关闭。
我试图了解破折号
考虑一下:
如您在上面的正则表达式中看到的,我正在尝试从url中提取id的数量。我也使用反斜杠
现在我想知道,哪个是正确的(标准)?我需要在正则表达式中转义破折号吗?
(3个答案)
4年前关闭。
我试图了解破折号
-
是否需要在正则表达式中使用反斜杠进行转义?考虑一下:
var url = '/user/1234-username';
var pattern = /\/(\d+)\-/;
var match = pattern.exec(url);
var id = match[1]; // 1234
如您在上面的正则表达式中看到的,我正在尝试从url中提取id的数量。我也使用反斜杠
-
在正则表达式中转义了\
字符。但是当我删除该反斜杠时,仍然一切都很好..!换句话说,这两个都很好:/\/(\d+)\-/
/\/(\d+)-/
现在我想知道,哪个是正确的(标准)?我需要在正则表达式中转义破折号吗?
最佳答案
仅当可以将破折号字符解释为范围指示符时才需要转义该破折号字符(character class内部可能就是这种情况)。
/-/ # matches "-"
/[a-z]/ # matches any letter in the range between ASCII a and ASCII z
/[a\-z]/ # matches "a", "-" or "z"
/[a-]/ # matches "a" or "-"
/[-z]/ # matches "-" or "z"
关于javascript - 我需要在正则表达式中转义破折号吗? [复制],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35536590/
10-10 17:59