[英]replace square bracket & curly brackets to round brackets in javascript or jquery
我有这样的字符串
var data = "{45}*[52]*{45}*[52]*{45}*[52]*69"
我需要将所有方括号和花括号替换为javascript或jquery中的圆括号
我试过这个
.replace(/[\[\]']+/g,'')
但它取代了所有开放式和闭合式并行
预期结果是= "(45)*(52)*(45)*(52)*(45)*(52)*69"
有任何想法吗 ?
您可以使用简单的方法
"{45}*[52]*{45}*[52]*{45}*[52]*69".split(/[\{\[]/).join('(').split(/[\}\]]/).join(')')
您可以使用函数作为第二个参数调用.replace()
。 使用此功能,您可以创建一个新的子字符串,用作替换。
str.replace(regexp|substr, newSubStr|function[, flags])
功能(更换)
要调用以创建新子字符串的函数(用于替换从参数1接收的子字符串)。 提供给此函数的参数在下面的“将函数指定为参数”部分中进行了描述。将函数指定为参数
您可以将函数指定为第二个参数。 在这种情况下,将在执行匹配后调用该函数。 函数的结果(返回值)将用作替换字符串。 (注意:上述特殊替换模式在这种情况下不适用。)请注意,如果第一个参数中的正则表达式是全局的,则每次完全匹配时将调用该函数多次。
"[abc]".replace(/\[|\]/g, function(m) {
var replacements = {"[": "(", "]": ")"}; return replacements[m];
});
尝试使用RegExp
/(.\\d{2}.)/
匹配两位数,两位数字,任意字符之前的任何字符; .match()
匹配数字,返回替换字符串
var data = "{45}*[52]*{45}*[52]*{45}*[52]*69"; var res = data.replace(/(.\\d{2}.)/g, function(match) { return "(" + match.match(/\\d+/)[0] + ")" }); document.body.textContent = res;
在一个替代
var data = "{45}*[52]*{45}*[52]*{45}*[52]*69";
data = data.replace(/[\[\{](\d+)[\]\}]/g, "($1)")
虽然它也会用(123)取代[123}和{123] ......所以在技术上不正确
如果您只想替换“正确”格式化的输入,则需要两次替换调用
data = data.replace(/[\{](\d+)[\}]/g, "($1)").replace(/[\[](\d+)[\]]/g, "($1)")
我认为
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.