所以我需要用两种方式 trim 某个字符串(不同的结果)
myString = '3rd Floor Empire State Building',请注意 myString 的格式可以是:
- 哈利法塔 13 楼
- 克莱斯勒大厦二楼
- 四楼大本钟
基本上我在这里想说的是“地板”这个词是一致的..
所以这就是我需要做的:
- 匹配字符串直到某个单词,并删除该单词之后的所有内容。
so from myString, I just need the word '3rd' - what I have so far is:
myString.match(/.+?(?=floor)/ig)
but this code leaves out a space and it becomes '3rd '
- 匹配字符串直到某个单词,并向后删除该单词的所有内容。
so from myString, I just need the word 'Empire State Building'.
编辑:我还需要牢记这些假设,是否可能以及如何使其简洁? (如果可能的话,一行):
- 接受楼层或楼层
- 仅采用 Floor/flr 之前的第一个单词(例如,如果输出是 Apartment 2nd flr Building 或 Apartment 2nd Floor bldg,则应仅采用 2nd 和 Building/bldg)
最佳答案
或者您可以使用字符串。 split()
const myString = '3rd Floor Empire State Building';
const certainString = ' Floor ';
let before = myString.split(certainString)[0];
let after = myString.split(certainString)[1];
console.log(before);
console.log(after);
如果区分大小写是一个问题,我们可以在比较之前将它们转换为小写(或大写)。检查下面的代码片段:
const myString = '3rd Floor Empire State Building';
const certainWord = ' Floor ';
//----------------------------------------------
const lowerMyString = myString.toLowerCase();
const lowerCertainWord = certainWord.toLowerCase();
const beforeEndIndex = lowerMyString.indexOf(lowerCertainWord);
const afterStartIndex = beforeEndIndex + lowerCertainWord.length;
const before = myString.slice(0, beforeEndIndex);
const after = myString.slice(afterStartIndex, myString.length);
//----------------------------------------------
console.log(before);
console.log(after);
关于javascript - 正则表达式匹配直到某个单词并清除所有前导和尾随空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61061033/