第一种:使用正则表达式加字符串替换。问题是可以直接把英文括号及里面的内容删除,但是对中文括号处理不了。只好先替换为英文括号,然后再全局替换。
let originalString = "西溪阳光中心未来悦(公寓)(商业)"; // let cleanedString = originalString.replace(/\(\w+\)/, ""); // console.log(cleanedString); // 输出: 西溪阳光中心未来悦 // return originalString.replace(/[(\w+)]/g, ''); // return originalString.replace(/([^)]*\)/g,""); // return originalString.replace(/\([^\)]*\)/g,""); // originalString.replace(/\([^\)]*\)/g,""); var txt = originalString.replace(/(/g,"("); originalString = txt.replace(/)/g,")"); return originalString.replace(/\([^\)]*\)/g,"");
它的优点很显然:能处理中文双括号,英文双括号,前面是英文括号后面是中文括号,前面是中文括号后面是英文括号的各种情况。
第二种方式:用字符串处理函数split。
realList[i].real_estate_name = realList[i].real_estate_name.split(')')[0];
优点是代码简短,很有针对性。但是对英文双括号,前面是英文括号后面是中文括号,前面是中文括号后面是英文括号的各种非正常情况无法精确处理。
第三种方式:使用正则表达式。适配中英文括号。显然这个是最佳方案,代码简洁还适配所有异常情况。
realList[i].real_estate_name = realList[i].real_estate_name.replace(/[\(\(][^\)\)]*[\)\)]/g, '');