在数组元素的文本中找到字符串的一部分后替换字符串的一部分
Replace a part of the string after being found in the text of an array element
我希望将fText
字符串值int b=3, a, c=10;
更改为:
int _sc_b=3, _sc_a, _sc_c=10;
通过使用数组元素中的文本。
我的代码:
var fText = "int b=3, a, c=10;";
sc_var_int_temp[0] = "a";
sc_var_int_temp[1] = "b";
sc_var_int_temp[2] = "c";
for( var vi=0; vi<sc_var_int_temp.length; vi++ ){
//how would i do the replacing?
}//for
目标:fText
值将被int _sc_b=3, _sc_a, _sc_c=10;
更新:尝试fText.replace(sc_var_int_temp[vi], "_sc_"+sc_var_int_temp[vi] );
但挂起系统^^
我打算尽可能使用循环进行替换
更新
我意识到当 fText 是以下情况时,我接受的答案将无法正常工作:
var fText = "int b=3,a ,c=10;";
//not really seperated by a single whitespace
它可能不会捕获每个边缘情况,但适用于您的示例输入/输出:
for( var vi=0; vi<sc_var_int_temp.length; vi++ ){
fText = fText.split(' '+ sc_var_int_temp[vi] ).join( " _sc_" + sc_var_int_temp[vi] );
}
http://jsfiddle.net/6YgHj/
或者没有循环
fText = fText.split(' ').join(' _sc_');
http://jsfiddle.net/6YgHj/1/
因此,您真正想要的是在一个声明变量的字符串中为看似变量名称的内容添加一个前缀。您需要一种方法来提取变量名称。我想不出用源语言声明变量的所有可能方法。"int a=1, float b,c"
有效吗?"int a=10, b=2*a;"
怎么样?
尝试以下正则表达式:
var fText = "int b=3, a, c=10;";
fText = fText.replace(/(a|b|c)/g, "_sc_$1")
/(a|b|c)/g
匹配 a、b 或 c,并将它们分配为单独的匹配项,因为括号()
。然后"_sc_$1"
是替换,$1
拉回实际匹配的字母。
请参阅此处的工作小提琴:http://jsfiddle.net/Kc2NF/
相关文章:
- 如何检查字符串的一部分与数组匹配
- 将字符串的一部分设置为数组的一部分
- 用数字单位替换字符串的一部分
- 移除字符串(如果找到)移除JS中字符串的一部分
- 如何获得字符串的一部分
- 作为onclick确认的一部分,Razor中的字符串属性
- 用HTML元素替换字符串的一部分
- 如何知道找到的单词是字符串的一部分还是JavaScript中的函数调用
- j如何从给定字符串的一部分替换字符串
- 如何使用RegExp选择字符串的一部分并在变量中重用它
- 返回javascript中regex字符串的一部分
- JQuery获取字符串的一部分
- JavaScript Regexp仅匹配字符串的一部分
- 如何在数组jQuery中查找字符串的一部分
- 撇号标记在javascript字符串中与Backslash一起发送,该字符串使用ajax作为json对象的一部分发送到p
- JavaScript:将字符串的一部分放入DOM容器中,保存溢出
- 将字符串的一部分转换为DataTables的JSON
- 如何在javascript数组中剥离字符串的一部分
- 如何获取在Javascript正则表达式中用正斜杠分隔的字符串的一部分
- 如果两个值都会动态变化,则用变量替换某个字符串的一部分 - Javascript