1

次のようなリクエストを処理する必要があります。

/key/6435.254.53538

RegexPalで動作する正規表現を書きました

(([0-9]+\.?)+)

Express.js でハンドラーを作成します

/key/:key(([0-9]+\.?)+)

ただし、キーの最後の部分のみを返します

req.params.key == '53538'

完全なキーを取得するにはどうすればよいですか?

4

1 に答える 1

1

問題は、誤って数字をキャプチャしてしまい、最後のキャプチャのみが返されることです。次のいずれかを試してください。

/key/:key((?:[0-9]+\.?)+)

また

/key/:key(((?:[0-9]+\.?)+))

または:

/key/:key([\d.]+)

唯一の違いは、先行ピリオドと連続ピリオドが許可されることです。それが決して当てはまらない、または問題にならないことがわかっている場合、この正規表現ははるかに読みやすくなります。

于 2012-11-02T20:57:09.050 に答える