如何纠正包含ä,ö,ü?

时间:2016-03-30 00:22:11

标签: javascript multiline acrobat

我有一个多行文本字段,用户可以输入例如“märzmärz”。 现在我想将这两个词改成“MärzMärz”。

我尝试了这段代码(在自定义按键脚本中):

var z=event.value.replace(/[\w\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff]+/igm, function(m){ return m.toLowerCase();});
var x=z.toLowerCase();
var y = x.replace(/\b./igm, function(m){ return m.toUpperCase();});
event.value = y;

结果是:“MäRzMäRz”

如何编辑脚本,结果如​​下:“MärzMärz”?

由于

3 个答案:

答案 0 :(得分:0)

如果它始终是第一个字母,那么你就不需要正则表达式了:

var start =  "märz märz";

var text = start.split(' ').map(function(el) {
  return el.slice(0, 1).toUpperCase() + el.slice(1);
}).join(' ');


console.log(text); // "März März"

JSBin:

https://jsbin.com/sohamo/edit?js,console

答案 1 :(得分:0)

这个怎么样:

var a = "märz märz, april mai oktober\nnovember februar\naugust";

function capitalize(string) {
  var b = string.split(" ");
  b.forEach(function(e, i, a) {
    a[i] = e[0].toUpperCase() + e.slice(1);
    if (a[i].indexOf("\n") > 0) {
      a[i] = e[a[i].indexOf("\n") + 1].toUpperCase() + a[i].slice(a[i].indexOf("\n") + 2);
    }
  });
  return b.join(" ");
}

document.write(capitalize(a));

答案 2 :(得分:0)

基于bergi的提示,代码必须编辑为:

event.value = event.value.replace(/(^|\s+)\S/g, function(m){ return m.toUpperCase();});

那段代码完全符合我的要求。

每行中的每个单词都是大写的。

感谢。