Javascript - 如何加入两个首字母大写的文字脚本

Javascript - How to join two capitalize first letter of word scripts

我有一个 Acrobat 表单,其中包含一些多行文本字段。我的目标是将任何句子的第一个字母(寻找点)和任何新行的第一个字母(在按下 return 之后)转换为大写。

我可以 运行 分别进行每个变换,但不知道如何 运行 将它们组合在一起。

为了将句子大写,我使用以下代码作为自定义验证:

// make an array split at dot
var aInput = event.value.split(". ");
var sCharacter = '';
var sWord='';

// for each element of word array, capitalize the first letter
for(i = 0; i <aInput.length; i++) 
{
  aInput[i] = aInput[i].substr(0, 1).toUpperCase() + aInput[i].substr(1) .toLowerCase();
}

// rebuild input string with modified words with dots
event.value = aInput.join('. ');

为了将新行大写,我将“.”替换为“\r”。

在此先感谢您的帮助。

你可以用RegExp得到每个句子的第一个字符:

event.value = event.value.replace(/.+?[\.\?\!](\s|$)/g, function (txt) {
    return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});

演示:http://jsfiddle.net/00kzc370/

正则表达式解释:

  • /.+?[\.\?\!](\s|$)/g是正则表达式。
  • .+?[\.\?\!](\s|$) 是一种模式(用于搜索),匹配以 .?! 结尾并后跟 [=19 的句子=].
  • g 是修饰符。 (执行全局匹配(查找所有匹配而不是在第一个匹配后停止))。

来源:http://www.w3schools.com/jsref/jsref_obj_regexp.asp