swi*_*osz -1 javascript regex string replace
我有这个挑战:
我需要用这个替换这个字符串"[[OM:random-string-id]]":'<div id="random-string-id"></div>'
其中 OM 是要替换的组件 TYPE,而 random-string-id 是一个 id。两个部分都可以是动态的,我只需要用类型替换组件:'OM'。
# pseudocode
var text = [[$A:$B]] # this can be: "[[OM:something]]", "[[AD:somethingelse]]"
if ($A == 'OM') {
text = text.replace(<div id='$B'></div>)
}
Run Code Online (Sandbox Code Playgroud)
输入:[[OM:something]] => Output: "<div id='something'></div>"
输入:[[AD:somethingelse]] => Output: "[[AD:somethingelse]]"
最好的处理方法是什么?
使用内置替换的替换功能:
let str = "[[OM:random-string-idadsad]]"
str = str.replace(/^\[\[([A-Z]+):(.*)\]\]$/i, function(match, group1, group2, offset, string) {
if (!group1 || !group2) { //or check arguments.length, if less than 5 return..
return;
}
if (group1.toUpperCase() === "OM") {
return "<div id='" + group2 + "'></div>"
} else {
return string;
}
})
console.log(str)Run Code Online (Sandbox Code Playgroud)