字符替换

use*_*749 0 javascript regex jquery

我有以下字符串值.

var stringVal = [4|4.6]^Size{1}~[6];
Run Code Online (Sandbox Code Playgroud)

我想在第一次^出现之前替换所有内容,[1|5]我该怎么做呢?

提前致谢.

Dog*_*ert 5

一个简单的正则表达式将:

var stringVal = '[4|4.6]^Size{1}~[6]';
stringVal.replace(/^.*?\^/, '[1|5]^');
#=> "[1|5]^Size{1}~[6]"
Run Code Online (Sandbox Code Playgroud)

正则表达式解释:

 ^   start of string
 .   any character
 *?  repeat >= 0 times, but match as less characters as possible (non-greedy)
 \^  match '^' (a simple `^` matches the start of the string, so we need to escape it
Run Code Online (Sandbox Code Playgroud)

另一种更快的方法,适用于这种情况:

'[1|5]' + stringVal.substr(stringVal.indexOf('^'))
Run Code Online (Sandbox Code Playgroud)