以正则表达式结尾-Javascript

时间:2018-07-06 07:00:52

标签: javascript

"inquisitive".endsWith('ive')返回true

我希望能够搜索类似"inquisitive".endsWith(i[a-z]e)的内容,就像以'i' and some character after that and then an 'e'结尾的内容一样。我不想进行子字符串匹配,因为此方法将是通用的,并且在大多数情况下将不具有正则表达式,而具有简单的具有逻辑的ends。

有没有办法使用香草JS做到这一点?

1 个答案:

答案 0 :(得分:2)

如果您只能使用endsWith,并且出于某种奇怪的原因而不能使用正则表达式,则可以列出'iae'和{之间的所有字符串的列表。 {1}}:

'ize'

但是那比应该的要复杂得多。如果可能的话,请更改您的代码以接受使用正则表达式,这非常简单,应该更可取:

const allowedStrs = Array.from(
  { length: 26 },
  (_, i) => 'i' + String.fromCharCode(i + 97) + 'e'
);
const test = str => allowedStrs.some(end => str.endsWith(end));
console.log(test('iae'));
console.log(test('ize'));
console.log(test('ife'));
console.log(test('ihe'));
console.log(test('iaf'));
console.log(test('aae'));