【问题标题】:javascript reg ex selecting every except first letter of each word (Latin extended characters)javascript reg ex 选择每个单词的第一个字母(拉丁扩展字符)
【发布时间】:2016-05-05 19:49:26
【问题描述】:

我的任务是选择每个单词的第一个字母以外的每个字母并转换为小写。除了一个简单的区别外,我发现很少有类似的主题。我的角色是拉丁扩展的,这些表达方式都不适合我。

文字示例:

Kazlų RŪDA, ŽIEŽMARIŲ raj.

我需要这样的结果:

Kazlų Rūda, Žiežmarių raj.

我想出了最好的:

/\B[\u00C0-\u1FFF\u2C00-\uD7FF\w]/g

提前感谢您的帮助。

【问题讨论】:

标签: javascript regex


【解决方案1】:

你可以这样做

var str = "Kazlų RŪDA, ŽIEŽMARIŲ raj.";
str = str.replace( /(^\S|\s\S)(\S+)/g , function(m,p1,p2){ return p1+p2.toLowerCase(); } );
// output: "Kazlų Rūda, Žiežmarių raj."

【讨论】:

    【解决方案2】:

    您的正则表达式模式很好,只需使用带有回调的String.replace 函数将所有需要的字符转换为小写:

    var str = 'Kazlų RŪDA, ŽIEŽMARIŲ raj';
    str = str.replace(/[\u00C0-\u1FFF\u2C00-\uD7FF\w]+/g, (m) => m[0] + m.substr(1).toLowerCase());
    
    console.log(str);  // "Kazlų Rūda, Žiežmarių raj"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多