在谷歌应用程序脚本中搜索数字的正则表达式模式(Javascript 1.6)

在谷歌应用程序脚本中搜索数字的正则表达式模式(Javascript 1.6),javascript,regex,google-apps-script,Javascript,Regex,Google Apps Script,我有一个从0到10的数字数组[“0”、“1”、…、“10”],我正在使用text.search(array[I]),其中文本包含“10”(这是10)。代码总是找到“1”而不是“10”。我可以创建一个RegExp来查找10 非常感谢 function analizar(text) { var querer = ["baja", "muestra", "ver", "imprim"]; var tema = ["contenido", "asunto", "materia", "texto

我有一个从0到10的数字数组[“0”、“1”、…、“10”],我正在使用
text.search(array[I])
,其中文本包含“10”(这是10)。代码总是找到“1”而不是“10”。我可以创建一个
RegExp
来查找
10

非常感谢

function analizar(text) {
  var querer =  ["baja", "muestra", "ver", "imprim"];
  var tema = ["contenido", "asunto", "materia", "texto", "leccion"];
  var temas =[" 0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"];

  var keys = [querer, tema, temas];
  var resultado = 0;

  var str = []
  for (var a = 0; a < keys.length; a++){
    for (var b = 0; b < keys[a].length; b++){

      var actual = keys[a];
      var buscar = actual[b];

问题是regexp字符串在
temas
数组中的顺序。由于您正在检查字符串的
1
,然后检查
10
,因此任何包含
10
的字符串都将始终匹配
1
。因为你在比赛结束后就中断了比赛,所以你将永远无法进入
10

您需要将
10
移动到
1
前面,然后它将按预期工作

var temas =[" 0", "10", "1", "2", "3", "4", "5", "6", "7", "8", "9"];

问题是regexp字符串在
temas
数组中的顺序。由于您正在检查字符串的
1
,然后检查
10
,因此任何包含
10
的字符串都将始终匹配
1
。因为你在比赛结束后就中断了比赛,所以你将永远无法进入
10

您需要将
10
移动到
1
前面,然后它将按预期工作

var temas =[" 0", "10", "1", "2", "3", "4", "5", "6", "7", "8", "9"];

第一个问题是通过数字从低到高进行搜索。这意味着我们找到
1
并返回,而我们本应该贪婪地在
1
之后匹配
0
,以匹配完整的
10

因此,只需重新排列阵列:

var-temas=[“10”、“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”]

应该给出正确的输出

然而,您根本没有使用正则表达式来实现其真正的功能。单个正则表达式可以描述整个数组:

/10?|[2-9]| 0/

正则表达式细分:

10?
:匹配一个字符
1
,该字符恰好出现一次,后跟
0
1次或0次。(这将捕获
1
案例和
10
案例)
|
:这是一个
操作。将表达式向左或向右匹配。
[2-9]
:在
2
9

|
:另一个


0
:将字符
精确匹配一次,后跟一个
0
字符。

第一个问题是在数字中从低到高搜索。这意味着我们找到
1
并返回,而我们本应该贪婪地在
1
之后匹配
0
,以匹配完整的
10

因此,只需重新排列阵列:

var-temas=[“10”、“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”]

应该给出正确的输出

然而,您根本没有使用正则表达式来实现其真正的功能。单个正则表达式可以描述整个数组:

/10?|[2-9]| 0/

正则表达式细分:

10?
:匹配一个字符
1
,该字符恰好出现一次,后跟
0
1次或0次。(这将捕获
1
案例和
10
案例)
|
:这是一个
操作。将表达式向左或向右匹配。
[2-9]
:在
2
9

|
:另一个


0
:将字符
精确匹配一次,后跟一个
0
字符。

非常感谢。这是完美的解决方案,非常感谢。这是完美的解决方案