【问题标题】:Javascript - How to join two capitalize first letter of word scriptsJavascript - 如何连接两个大写单词脚本的首字母
【发布时间】:2015-02-28 12:42:51
【问题描述】:

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

我可以单独运行每个转换,但不知道如何一起运行。

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

// 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”。

提前感谢您的帮助。

【问题讨论】:

标签: javascript acrobat uppercase


【解决方案1】:

你可以用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|$) 是一个匹配以.?! 结尾并后跟whitespace character 的句子的模式(用于搜索)。
  • g 是一个修饰符。 (执行全局匹配(查找所有匹配,而不是在第一个匹配后停止)。

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

【讨论】:

  • 您好,谢谢您的帮助。我尝试使用正则表达式但没有成功。我将研究它以了解利用其潜力的正确方法。
猜你喜欢
  • 2011-09-15
  • 2020-08-30
  • 2016-05-01
  • 2016-12-05
  • 2015-11-10
  • 1970-01-01
  • 2023-01-26
相关资源
最近更新 更多