正则表达式不支持换行\ n

时间:2016-04-25 00:40:30

标签: javascript

我正在尝试为最后一行(\n)跳过一个数字找到正确的正则表达式,但每次它都不起作用。

我的正则表达式为/^\d+(\n)$/

编辑:文本区域包含:

22\n
33

这是我的代码(我正在尝试验证textarea中的内容,并且每行的末尾只有\n的数字):

function valideChamp()
{
  var rExp1 = /^\d+(\n)$/;
  var aChamps = document.querySelector("textarea").value;

  if (rExp1.test(aChamps.value)==true){
    alert("Valide") 
  }   
  else {   
    alert("Invalide")
    return false;   
  }   
}

3 个答案:

答案 0 :(得分:1)

如果您想检查任何只包含数字的行,您可以使用:

/(^|\n)\d+(\r?\n)/

如果你只是想检查那里只有一个数字,然后是换行符,而不是别的:

/^\d+(\r?\n)$/

(这是你要检查的,但这是一个奇怪的输入模式。)

如果你想确保textarea只包含数字行,那么检查string.replace(/[0-9\r\n]/g, '') == ''可能会更简单。这将确认它是否仅包含数字和换行符。

答案 1 :(得分:1)

删除“.value” 从这一行: if(rExp1.test(aChamps.value)== true){

答案 2 :(得分:0)

你一起使用$和\ n,这有点多余。尝试

/\d+$/gm

其中g =全局标志,m =多行标志。请注意,这将匹配多行。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp