如何使用正则表达式查找某些数字,如果输入了这些数字,则为其添加更多数字?
//Pseudocode
regex = 123
input = 1234567
if input[3] = regex
{
input + 07
}
output = 07123467
答案 0 :(得分:1)
你可以这样做:
var searchSequence = 123;
var fullSequence = 9999991234567;
var searchString = searchSequence.toString();
var fullString = fullSequence.toString();
var searchIndex;
if ((searchIndex = fullString.indexOf(searchString)) != -1) {
fullString = fullString.substring(0, searchIndex) + '07' + fullString.substring(searchIndex);
fullSequence = Number(fullString);
alert(fullSequence);
}

答案 1 :(得分:0)
听起来你只需要replace
一个带有另一个序列的数字序列。根据上下文,您可能需要搜索和拼接字符串,但很有可能您可以简单地:
'123456'.replace('123', '07$&')
答案 2 :(得分:0)
test
方法如果要使用正则表达式来确定输入中是否存在字符123,则可以使用RegExp.prototype.test
方法。它返回true
或false
,具体取决于输入是否与正则表达式匹配。
var regex = /123/;
var input = 1234567;
var output = input;
if (regex.test(input)) { //=> true
output = '07' + input; //=> '071234567'
}
值得注意的是,正则表达式/123/
只会将输入与完全数字序列进行匹配。例如:
var regex = /123/;
regex.test(8); //=> false
regex.test(12); //=> false
regex.test(312); //=> false
regex.test(7123); //=> true
regex.test('0123'); //=> true
如果您想匹配该集中的任何号码,只需添加方括号即可创建character set。
var regex = /[123]/;
regex.test(8); //=> false
regex.test(12); //=> true
regex.test(312); //=> true
regex.test(7123); //=> true
regex.test('0123'); //=> true
您可以使用流行的javascript regex沙箱Scriptular来玩更多游戏。我强烈推荐它,它包括一个非常有用的正则表达式的备忘单。