0

我试图抓住一个人的名字。该名称将输入文本框中,例如:

我的名字是罗伯特,或者是的,我的名字是罗伯特等。

但是由于介绍词等,我不知道实际名称会落在哪里。

我在想这样的事情。

  1. 我搜索“我的名字是”
  2. 我将它捕获在一个数组中
  3. 我拆分数组
  4. 我现在知道实际名称如下:

namesParts[0]- 将是“我的”

namesParts[1]- 将是“名称”

namesParts[2]- 将是“是”

namesParts[3]- 将是我正在寻找的名字。

可能类似于下面的内容,但这不起作用。

if (input.search("my name is")!= -1) {
    var names = input.match(/my name is/);
    var namesParts = names.split(' '); 
    var one = namesParts[3];
    document.result.result.value = "Ok your name is "+one+".";
    return true;
}
4

2 回答 2

1

如果所有其他单词都以小写字母开头,您可以使用

'my name is Robert'.match(/[A-Z]+\w*/);

否则

'My name is Robert'.match(/my name is (\S+)/i);
于 2013-05-12T21:42:21.580 回答
0

检查JavaScriptString.split方法。

例子:

var str="my name is Robert";
var n=str.split('my name is ');
alert('1. Length: '+n.length +' Array: '+ n);

var str="my name is Robert";
var n=str.split(' ');
alert('2. Length: '+n.length +' Array: '+ n);

var str="my name is Robert";
var n=str.split('');
alert('3. Length: '+n.length +' Array: '+ n);

现场示例:http: //jsfiddle.net/a4D8q/

于 2013-05-12T22:15:58.493 回答