我有以下字符串.
/v/dkdkd-akdoa?
Run Code Online (Sandbox Code Playgroud)
我想替换dkdkd-akdoa.
我的替换方法看起来像
string.replace("v\/(.+)\?", "replace")
Run Code Online (Sandbox Code Playgroud)
但它也取代了v/.我该如何更换dkdkd-akdoa?
请尝试以下代码:
> '/v/dkdkd-akdoa?'.replace(/(v\/).+\?/, '$1replace')
"/v/replace"
Run Code Online (Sandbox Code Playgroud)
如果你想保持?:
> '/v/dkdkd-akdoa?'.replace(/(v\/).+(?=\?)/, '$1replace')
"/v/replace?"
Run Code Online (Sandbox Code Playgroud)
$1引用第一组((v\/))
很简单
string.replace(/v\/.+\?/, "v/replace");
Run Code Online (Sandbox Code Playgroud)
如果第一部分未知,您可以捕获并替换它:
string.replace(/(v\/).+\?/, "$1replace");
Run Code Online (Sandbox Code Playgroud)
显然,在第二个示例中,它是已知的,因为它v/是常数。你可能会用类似的东西替换它/^(.*?/).+\?/