如何使用正则表达式查找某些数字的出现

时间:2015-07-10 16:18:32

标签: javascript regex

如何使用正则表达式查找某些数字,如果输入了这些数字,则为其添加更多数字?

//Pseudocode
regex = 123
input = 1234567
if input[3] = regex
{
  input + 07
}  
output = 07123467

3 个答案:

答案 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方法。它返回truefalse,具体取决于输入是否与正则表达式匹配。

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来玩更多游戏。我强烈推荐它,它包括一个非常有用的正则表达式的备忘单。