var exampleURL = '/example/url/345234/test/';
var numbersOnly = [?]
路径的/url/
和/test
部分将始终相同。
请注意,我需要/url/
和/test
之间的数字。在上面的示例网址中,占位符字示例可能也是不时的数字,但在这种情况下,它不应该匹配。仅限/url/
和/test
之间的数字。
谢谢!
答案 0 :(得分:7)
var exampleURL = '/example/url/345234/test/';
// this will remove all non-numbers
var numbers = exampleURL.replace(/[\D]/g, '');
// or you can split the string and take only that 3rd bit
var numbers = exampleURL.split(/\//)[3];
// or match with a regex
var numbers = exampleURL.match(/\/(\d+)\/test\//)[1];
答案 1 :(得分:4)
这些方面的东西:
var result;
result = value.match(/\/url\/([0-9]+)\/test/);
// use result[1] to get the numbers (the first capture group)
这取决于/url/
和/test
位,因为你说它们是可靠的。更一般地说,这将匹配字符串中第一个数字运行:
var result;
result = value.match(/[0-9]+/);
// use result[0] (not result[1]), which is the total match
MDC page on regular expressions非常有用。
注意:您可以使用代表“数字”的[0-9]
代替\d
。我没有,因为我的正则表达式很弱而且我永远记不住它(当我这样做时,我永远不会记得它是全部数字还是所有非数字[\D
- 你看到我的困惑当我稍后阅读时,我发现[0-9]
非常清楚。其他人可能会发现\d
更清楚,但对我来说,我喜欢列出范围的明确性。
答案 2 :(得分:1)
可行的正则表达式
matches = exampleURL.match('/\/.+\/url/([0-9]+)\/test\//');
我认为这是对的。