如何获得前两个单词
How to get first 2 words?
设data.title
为ABC XYZ PQRS-www.aaa.tld。输出需要像这样ABC+XYZ
我试过这个:
var t = data.title.split(' ').join('+');
t = t.replace(/(([^'s]+'s's*){1})(.*)/,"Unknown");
$("#log").text(t);
这里有一种方法,但没有正则表达式,它只获取前两个单词,并且这些单词之间必须有空格。
首先,我们将其拆分为和数组,然后将该数组从0索引切片为2(排他)或1,最后用"+"连接它们:
var x = 'ABC XYZ PQRS';
var y = x.split(' ').slice(0,2).join('+');
// y = "ABC+XYZ"
工作Fiddle
尝试将.match()
与RegExp
/(['w+]+)/g
一起使用;连接第一个匹配,+
字符,第二个匹配
var matches = "ABC XYZ PQRS - www.aaa.tld".match(/(['w+]+)/g);
console.log(matches[0] + "+" + matches[1])
这是我对前n个单词的通用函数。我还没有对它进行过广泛的测试,但它即使在长字符串上也很快,因为它不使用全局正则表达式或拆分每个单词。您可以微调正则表达式以处理标点符号。我正在考虑用连字符作为分隔符,但如果你愿意,你可以把它移到单词部分。
function regFirstWords(s, n) {
// ?: non-capturing subsequent sp+word.Change {} if you want to require n instead of allowing fewer
var a = s.match(new RegExp('[''w''.]+' + '(?:[''s-]*[''w''.]+){0,' + (n - 1) + '}'));
return (a === undefined || a === null) ? '' : a[0];
}
满足OP的要求,更换为"+"
regFirstWords('ABC XYZ PQRS - www.aaa.tld',2).replace(/'s/g,'+')
相关文章:
- 两个单词之间的Javascript差异
- 如何删除两个单词之间的字符串
- 文本框中需要两个单词,使用AngularJS
- 如何获得前两个单词
- 我在angular JS中选择了一个默认选项,并删除了两个单词之间的下划线
- Javascript正则表达式匹配多个单词中至少一个以数字开头的单词,但至少匹配两个单词
- 如何将 java 类名更改为两个单词
- 在两个单词之间应用正则表达式
- 选择 h2 标签的前两个单词并换行 span 标签
- 如果突出显示某个单词,并且用户单击了连接单词,请突出显示这两个单词
- 谷歌邮件应用程序脚本中的正则表达式困难 - 在两个单词之间选择单词
- JQUERY 如果字符串包含两个单词
- MongoDB 正则表达式找到两个单词,它们之间正好有 n 个或更少的单词
- 输入字段中不超过两个单词
- 获取两个单词之间的每个字符串
- 替换两个单词之间的文本
- 如何使用createTextRange在两个不同的文本区域中选择两个单词
- 在javascript中包含两个单词的attr id
- 如何在两个单词之间提取最少的字符
- 在两个单词后插入新行