正则表达式回调函数只执行一次
regex callback function only executes once
所以我正在搜索 {x} 的字符串,其中 x 是 1-9 之间的某个数字,我的正则表达式找到第一个出现并运行回调函数,但这仅在第一个找到的实例上调用。例如,{2}Some{3}String 将返回替换值 x 次,具体取决于括号之间的整数,因此当我希望它返回		Some			String
时,函数会返回		Some{3}
。
我不知道很多正则表达式,但是我需要添加一些东西才能在所有匹配的实例上执行回调函数?
这是代码
var string = "{2}Some{3}String";
function replaceWithTabs(propertyName) {
var regExp = new RegExp(''{[1-9]'}');
function addTabs(match) {
var string = '',
i = 0,
length = match.substring(1,2);
for(i; i < length; i++) {
string += "	";
}
return string;
} return propertyName.replace(regExp, addTabs); }
改用这个RegExp
文字:
var regExp = /{[1-9]}/g;
{
或}
不是Regular Expression
的特殊符号,因此您可以避免斜杠。 正则表达式g
标志表示global match
,否则您只会替换第一个匹配项,而不是所有匹配项。最好使用 literal
而不是RegExp contstructor
,因为它更快。另外,如果使用正则表达式构造函数,则还需要转义'
符号,因为斜杠是string literal
中的特殊符号。考虑一下:
var regliteral = /'./;
//Similar with constructor
var regconstructor = new RegExp('''.'); //slash is special symbol in string,so we add extra slash before it
相关文章:
- If语句只执行一次
- JavaScript 只在 php 代码中执行一次
- 如果只有一次有条件,如何执行
- 是节点.js一次只执行一个上下文
- 就绪函数上的指令只能执行一次
- 如何在if循环中只执行一次
- Javascript执行一次
- Jquery on('单击')..函数只执行一次
- 如何在一次有条件的ng单击时执行多个调用
- 如何只执行一次ajaxStart和ajaxEnd
- 使用Greasemonkey每5秒执行一次Javascript
- 只执行一次jquery animate
- jQuery如果大于则执行操作,但只执行一次
- 制作一个$window.location.reload(true);在离子/角度中仅执行一次
- 正则表达式回调函数只执行一次
- 如何循环函数数组并在单击时一次执行一个
- 代码只执行一次,但应该继续执行
- Casper.start 的循环只执行一次
- 如何在一次点击(而不是整个点击)内执行一次操作
- 在一次执行中多次运行Jasmine Spec