删除 javascript 字符串中的元音变音或特殊字符

2024-03-24

以前从未在 javascript 字符串中使用变音符号或特殊字符。我的问题是如何删除它们?

例如我在 javascript 中有这个:

var oldstr = "Bayern München";
var str = oldstr.split(' ').join('-');

结果是 Bayern-München 很简单,但现在我想删除元音变音或特殊字符,例如:

希洪皇家竞技队。

我怎样才能意识到这一点?

亲切的问候,

Frank


replace应该能够为您做到这一点,例如:

var str = str.replace(/ü/g, 'u');

...当然ü and u are not同一封信。 :-)

如果您尝试将给定范围之外的所有字符替换为某些字符(例如-),您可以通过指定范围来做到这一点:

var str = str.replace(/[^A-Za-z0-9\-_]/g, '-');

那取代了all非英文字母、数字的字符,-, or _ with -。 (字符范围是[...]比特,那个^开头的意思是“不”。)这是一个活生生的例子 http://jsbin.com/ayadi3.

但这个(“Bayern-M-nchen”)对于慕尼黑先生来说可能有点不舒服。 :-) 你可以使用传入的函数replace尝试删除变音符号:

var str = str.replace(/[^A-Za-z0-9\-_]/g, function(ch) {
  // Character that look a bit like 'a'
  if ("áàâä".indexOf(ch) >= 0) { // There are a lot more than this
    return 'a';
  }
  // Character that look a bit like 'u'
  if ("úùûü".indexOf(ch) >= 0) { // There are a lot more than this
    return 'u';
  }
  /* ...long list of others...*/
  // Default
  return '-';
});

实例 http://jsbin.com/ayadi3/2

以上针对长字符串进行了优化。如果字符串本身很短,则最好使用重复的正则表达式:

var str = str.replace(/[áàâä]/g, 'a')
             .replace(/[úùûü]/g, 'u')
             .replace(/[^A-Za-z0-9\-_]/g, '-');

...但这是推测性的。

请注意,JavaScript 字符串中的文字字符完全没问题,但文件编码可能会带来乐趣。我倾向于坚持使用 unicode 转义。例如,上面的内容是:

var str = str.replace(/[\u00e4\u00e2\u00e0\u00e1]/g, 'a')
             .replace(/[\u00fc\u00fb\u00f9\u00fa]/g, 'u')
             .replace(' ','-');

...但是同样,有一个lot还有更多要做...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除 javascript 字符串中的元音变音或特殊字符 的相关文章

  • 如何清除ember js中的表单数据

    嗨 我对 ember js 很陌生 我写了一个新员工入职表格 并通过路线发送数据 数据保存成功 但问题是提交表单后我的表单数据没有清除 代码如下 app js App Router map function this resource sa
  • 目前最好的 Javascript 模板引擎是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • contenteditable,在文本末尾设置插入符号(跨浏览器)

    输出在Chrome div style border 1px solid 000 width 500px height 40px hey div what s up div div div div
  • CSS 比例和方形中心裁剪图像

    所以我的应用程序中有一个缩略图集合 其大小为200x200 有时原始图像没有这个比例 所以我计划将此图像裁剪为正方形 目前它只是拉伸图像以适合缩略图 所以说我的原始图像大小是400x800 那么图像看起来就很压扁 我想裁剪此图像 以便它查看
  • jQuery 模式窗口从我的表单中删除元素

    jQuery 当我用它创建一个包含表单元素的模式窗口时 当我提交表单时 它会取出这些元素 表格示例
  • JavaScript 对象镜像/单向属性同步

    出于安全目的 我需要一个 镜像 对象 也就是说 如果我创建对象 A 并浅克隆 A 的副本并将其称为 B 则每当 A 的属性发生更改时 我希望 B 自动更新自身以反映更改 但反之则不然 换句话说 单向属性同步 我的问题 是否已经存在我不知道的
  • 为什么 foo.hasOwnProperty('__proto__') 等于 false?

    var foo bar 5 Why is foo hasOwnProperty proto 等于false 它不能来自原型链中更高层的任何对象 因为它是特定于这个对象的 EDIT 有些答案说它已开启Object prototype 但我不明
  • 页面其余部分完成加载后延迟加载 html5 视频

    我有一个视频元素用作我正在构建的页面底部部分的背景 我试图通过将 src 存储为 data src 属性并使用 jQuery 在其他资源加载后将其应用到 src 属性 因为它不是英雄图像或任何东西 我想加载海报以节省加载时间 然后稍后加载视
  • 有没有等效的 gulp 插件来执行“grunt Bower”?

    With grunt 我可以使用命令grunt bower 由 提供grunt bower requirejs https github com ck86 gulp bower files 自动生成RequireJS我本地的配置文件bowe
  • 无法让 CloudKit 进行身份验证(使用 Javascript 和服务器到服务器密钥)

    我正在尝试使用苹果的cloudkit js文件以建立与 CloudKit 的服务器到服务器连接 然而 尽管配置混乱了几个小时 我似乎无法让 CloudKit 认为我的请求有效 我的配置逻辑非常简单 const privateKeyFile
  • Antd 选择搜索框未呈现匹配项

    我有产品数据 我正在使用搜索值过滤数据 然后使用过滤后的数据呈现选项 产品数据作为道具来自全局 redux 存储 由于某种原因 下拉列表仅在搜索值为空时显示数据 当我开始输入时 filteredData已更新 组件也重新渲染 但选项不显示任
  • 将 DIV 转换为单击并拖动视口

    有人知道一种不显眼的 基于原型或无框架的方法将具有大内容 例如地图 的 DIV 转换为具有固定尺寸的可点击和可拖动的 地图 容器 非常像 Google 地图 我想在大型输入表单中显示 HTML 块 这些块可能会超出可用空间 每个块可以有大约
  • 无法安装js-bson

    我正在使用Windows 7 64位 尝试安装bson作为mongodb的依赖项 我收到此错误 npm WARN package json email protected cdn cgi l email protection No READ
  • 什么是闭包编译器?

    如果您不知道我在说什么 请查看以下内容 http closure compiler appspot com home http closure compiler appspot com home 这是一个 JavaScript 压缩器 在他
  • JavaScript:嵌套循环?

    我想实现这样的动画 序列 动画以循环开始 想象一下car从 x1 移动到 x2 然后暂停 1 秒 然后再次播放动画 想象一下car从 x2 移动到 x3 等 the car循环是通过向汽车左侧添加 1px 来实现的 值 但我无法弄清楚嵌套循
  • 如何使表格单元格的最小宽度为 3 位数字?

    如何使表格中的每个单元格的最小宽度为 3 位数字且不会更大 现在我正在硬编码min width 但我不喜欢硬编码一个值 因为我将来可能想更改字体 如果需要Javascript也没关系 table border 1 tr td 1 td td
  • 将罗马数字转换为阿拉伯数字--recursiv

    我是 JavaScript 新手 正在网站的帮助下学习https www jshero net koans roman1 html https www jshero net koans roman1 html 本练习是编写一个转换器 将罗马
  • jQuery clone() 复制数据...有时...?

    使用下面的示例 我有一个tr我正在复制 它包含一个 jQueryautocomplete 第一次克隆时 自动完成功能不起作用 因为附加的data items 一片空白 第二次单击 添加 按钮时 自动完成功能将起作用 此后 再次单击 添加 会
  • 在状态中检测到不可序列化的值,路径为:`filters.startDate` (redux-toolkit.esm.js )

    我正在使用 React 18 和 Redux 构建一个预算应用程序 我不知道这里有什么问题 import moment from moment const filtersDefaultState text sortBy date start
  • html 下钻下拉所选值未插入 MYSQL

    我有两个下拉列表 首先从数据库下拉填充 根据第一个下拉列表的选定值从数据库填充第二个下拉列表 document ready function c change function var c1 c selected text if c1 aj

随机推荐

  • 如何使用DATA_PUMP导出到S3存储桶?

    我们有 RDS Oracle 实例 我需要将特定架构导出到转储文件中 导出工作并将转储文件复制到 DATA PUMP DIR 问题是 RDS 没有文件目录访问权限 我需要在 S3 上导出 DMP 文件或复制到另一个 EC2 实例 文章 LI
  • 轻松的十六进制/浮点转换

    我正在 c 和 python 程序之间进行一些输入 输出 仅浮点值 python 有一个很好的功能 可以将浮点值转换为十六进制数字并返回 如您在此链接中看到的 http docs python org library stdtypes ht
  • annotationProcessor gradle 4.7+ 配置不运行 lombok

    我在使用 gradle 4 7 项目时收到以下消息 The following annotation processors were detected on the compile classpath lombok launch Annot
  • IHTTPHandler 的无缓冲输出

    我想从一个流式传输数据IHttpHandler班级 我从数据库加载大量行 序列化并压缩它们 然后通过网络发送它们 另一方面 我希望我的客户端能够在服务器完成所有对象的序列化之前解压缩和反序列化数据 我在用着context Response
  • Angular 2 路由引发 404 错误

    HTML5 推送状态意味着刷新 URL 或在浏览器中输入直接 URL 当我使用以下命令运行我的 Angular 应用程序时效果非常好 npm start 来自 VS 2015 命令提示符的命令 但是 当我在 IIS 上部署相同的应用程序并更
  • Silverlight-DataGrid 控件-选择更改事件干扰排序

    我目前正在使用 Silverlight Beta 2 Datagrid 控件 在连接 SelectionChanged 事件之前 网格将通过单击标题完美排序 现在 当单击网格时 当我单击标题进行排序时 它将触发 SelectionChang
  • 从 panda 数据框中删除方括号

    我有一个数据框 我需要从中删除方括号才能输入到循环中 我尝试过使用 str strip 和 str commands 但是我收到错误消息 说我必须传递带有布尔值的数据帧 我的数据框中的值似乎是列表 m2 pd read csv newm2
  • Xamarin 中绑定 Jar 库时出现问题

    在绑定我的 jar 文件时 我不断在多个类中收到此错误 Error CS0534 path does not implement inherited abstract memberAndroid OS AsyncTask DoInBackg
  • SQL Server 数据库的大小有限制吗?

    我将用 C 开发一个系统 其中必须扫描和存储文档 我预计 dB 的大小将达到 3 4 TB 我的问题是可以将它们存储在数据库中还是数据库有限制 或者我是否必须将它们存储在文件夹中 提前致谢 是的 有一个限制 这取决于您使用的 SQL Ser
  • 与 CGAL 的链接错误

    我在 Mac OS X 10 8 4 上安装了 CGAL 我已成功地将 CGAL 的各个方面合并到以前的 C 程序中来计算 3D 点云的凸包 然而 现在我试图包含 CGAL 的其他部分来计算表面网格 将它们转换为多面体 等等 当我这样做时
  • 网格三角剖分和简化 C++ 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 C 库来三角测量和简化 3D 网格 我的 3D 网格可能很大 大约 300 万个顶点
  • 将 Babel 添加到 HTML

    我是 ReactJS 新手 在将 babel 导入 html 时遇到问题 目前该项目托管在code pen上链接到代码笔 https codepen io davedaw pen JJgvGK editors 1010 我正在尝试在本地主机
  • 如何在 Rust 中返回字符串向量

    如何通过分割中间有空格的字符串来返回字符串向量 fn line to words line str gt Vec
  • 如何在Raku中逐行读取gz文件

    我正在尝试在 Raku 中逐行读取一个巨大的 gz 文件 我正在尝试做这样的事情 my file huge file gz for file IO lines gt line say line 但这给出了我的 UTF 8 格式错误的错误 我
  • OpenCV::dnn::readNet 抛出异常

    我正在关注本教程 https learnopencv com object detection using yolov5 and opencv dnn in c and python 加载yolov5 onnx使用 OpenCV DNN 模
  • CPU如何对指令重新排序

    我最近读到了有关 CPU 指令重新排序以提高效率的内容 但我无法理解CPU如何重新排序其指令 我的意思是编译时重新排序是可以想象的 因为编译器可以预见即将到来的代码 但是对于一个接一个地读取指令的CPU 它如何看到即将到来的指令并对它们重新
  • 计算实验室信息系统 (LIS) 帧的校验和

    我正在开发一个仪器驱动程序实验室信息系统 https www limswiki org index php Laboratory information system 我想知道如何计算帧的校验和 校验和算法说明 用字符 0 9 和 A F
  • 我应该在每个视图中都有一个 NSFetchedResultsController 吗?

    我在我的第一个 iPhone 应用程序中使用 Core Data 并尝试理解 NSFetchedResultsController 它在我的根视图中效果很好 我是否需要在每个视图控制器中实例化一个实例 如果是这样 是否有一个模板可以使这像在
  • Ruby on Rails 教程自定义 CSS 未显示在应用程序中

    我正在运行 Michael Hartl 的 Ruby on Rails 教程 我的 boostrap sass 正在工作 但是我无法显示任何自定义修改 在第 5 5 章中 我们添加了 bootstrap sass gem 这是我的 Gem
  • 删除 javascript 字符串中的元音变音或特殊字符

    以前从未在 javascript 字符串中使用变音符号或特殊字符 我的问题是如何删除它们 例如我在 javascript 中有这个 var oldstr Bayern M nchen var str oldstr split join 结果