Javascript 使用正则表达式检查新行是否存在

Javascript 使用正则表达式检查新行是否存在,javascript,html,regex,Javascript,Html,Regex,我正在编写一个javascript,在非英语字符的开头添加{y},在结尾添加{/y)。我还需要它保留空行。但在当前场景中,它将{y}{/y)添加到空行/新行 var-lyrs=document.getElementById('userInput'); 函数printSong(){ var输入=0.value; 变量行=input.split('\n'); var generatedText=“”; 对于(变量i=0;i

我正在编写一个javascript,在非英语字符的开头添加{y},在结尾添加{/y)。我还需要它保留空行。但在当前场景中,它将{y}{/y)添加到空行/新行

var-lyrs=document.getElementById('userInput');
函数printSong(){
var输入=0.value;
变量行=input.split('\n');
var generatedText=“”;
对于(变量i=0;i

测试
அஇஉ்உ்உ
生成标记

避免将标记添加到空行只需添加

!lines[i].trim() || 
…到
if
的开头。它取该行,从中去掉任何前导和尾随空格,并查看结果是否为空。(
是假值,所以
!”
真的
)如果为空,则跳过正则表达式检查(因为
|
如果左侧操作数为真,则短路)我们进入
if
块(这样我们就不会在空行中添加标记)

但作为:

  • 对于逻辑OR操作,它是
    |
    ,而不是
    |
  • [A-z]
    匹配大写A和小写z之间的所有字符。在z之后和A之前有许多字符也将匹配
另外:
[A-z]|[0-9]{2}
表示“一个字符A到z或两个数字”。如果这是您真正的意思,可以,但如果您的意思是“两个字符A到z或0到9”你可以把它们组合成一个单一的字符类。我在下面没有这样做,理论上你可能希望条件是这样的

最后:如果您只想检查字符串是否与表达式匹配,则不希望
匹配
;相反,请对表达式使用
测试

if (string.match(expression) != null)
变成

if (expression.test())
这使得正则表达式引擎在知道结果后立即停止,而不必费心构建结果数组

随着这些变化:

var-lyrs=document.getElementById('userInput');
函数printSong(){
var输入=0.value;
变量行=input.split('\n');
var generatedText=“”;
对于(变量i=0;i

测试
அஇஉ்உ்உ
生成标记

避免将标记添加到空行只需添加

!lines[i].trim() || 
…到
if
的开头。它取该行,从中去掉任何前导和尾随空格,并查看结果是否为空。(
是假值,所以
!”
真的
)如果为空,则跳过正则表达式检查(因为
|
如果左侧操作数为真,则短路)我们进入
if
块(这样我们就不会在空行中添加标记)

但作为:

  • 对于逻辑OR操作,它是
    |
    ,而不是
    |
  • [A-z]
    匹配大写A和小写z之间的所有字符。在z之后和A之前有许多字符也将匹配
另外:
[A-z]|[0-9]{2}
表示“一个字符A到z或两个数字”。如果这是您真正的意思,可以,但如果您的意思是“两个字符A到z或0到9”你可以把它们组合成一个单一的字符类。我在下面没有这样做,理论上你可能希望条件是这样的

最后:如果您只想检查字符串是否与表达式匹配,则不希望
匹配
;相反,请对表达式使用
测试

if (string.match(expression) != null)
变成

if (expression.test())
这使得正则表达式引擎在知道结果后立即停止,而不必费心构建结果数组

随着这些变化:

var-lyrs=document.getElementById('userInput');
函数printSong(){
var输入=0.value;
变量行=input.split('\n');
var generatedText=“”;
对于(变量i=0;i

测试
அஇஉ்உ்உ
生成标记

请注意编辑器中的
图标。您可以将HTML/CSS/JS代码放入并使其成为可执行代码段。需要注意两件事:您在
if
[a-z]中使用了一元
匹配的不仅仅是ASCII字母。是否要查找非英语字符或具有非英语字符的行?@T.J.Crowder我已在其中添加了一些示例数据。@ReadyFreddy我要查找具有非英语字符的行请注意
编辑器中的图标。您可以将HTML/CSS/JS代码放入其中,并使其成为可执行代码段。T有两件事需要注意:如果
[a-z]
匹配的不仅仅是ASCII字母,那么在
中使用的是一元
|
。是否查找非英语字符或具有非英语字符的行?@T.J.Crowder我在其中添加了一些示例数据。@Read