javascript - 正则表达式获取每行的第一个元素

标签 javascript regex

我试图获取每行的第一个元素,无论是数字还是字符串,但是当该行以数字开头时,我当前的尝试仍然包含它:

const totalWords = "===========\n\n  1-test\n\n 2-ests \n\n 1 zfzrf";

const firstWord = totalWords.replace(/\s.*/,'')

我得到的输出:

1-test
2-ests 
1 zfzrf

我想要的输出:

1
2 
1 

最佳答案

或者,如果您对非正则表达式版本感兴趣(应该更快)

var str = "===========\n\n  1-test\n\n 2-ests \n\n 1 zfzrf";

var res = str.split("\n");
for (row of res) {
  let words = row.trim().split(' ');
  let firstWord = words[0].trim();
  // get first character, parse to int, validate it is infact integer
  let element = firstWord.charAt(0);
  if (Number.isInteger(parseInt(element))) {
    console.log('Row', row);
    console.log('Element: ', element);
  }
}

关于javascript - 正则表达式获取每行的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55144487/

相关文章:

java - 正则表达式匹配器 - 未找到匹配项

c# - 使用正则表达式从网页元素的内部文本中提取数字

javascript - 如何使用 ajax 自动刷新页面的一部分,而无需手动调用 javascript 中的函数?

javascript - Chrome 中 chrome.app.isInstalled 始终返回 false

javascript - 清空 $_POST。值最终以 $GLOBAL 结尾

用于模式研究的 Python 正则表达式

javascript - 为什么 Javascript ES6 中没有定义 `i` ?

javascript - 如何使用 Fabric.js 将 Canvas 保存为图像

.net - 匹配单个 CSS 属性的正则表达式

ios - 将 NSPredicate 设置为 NSFetchRequest 后 executeFetchRequest 崩溃