我想将孟加拉语数字替换为英语数字。比如
var bengali = [০,১,২,৩,৪,৫,৬,৭,৮,৯];
var eng = [0,1,2,3,4,5,6,7,8,9];
bengali.replace(eng);
所以任何人都可以写任何bengali号码,然后转换为英文号码。我怎样才能做到这一点?
答案 0 :(得分:7)
您有两种选择,具体取决于您希望代码的可维护性。
我建议使用以孟加拉语数字键入的哈希值,并替换为值:
<pre id=r></pre>
&#13;
Realm.getInstance(context)
&#13;
如果由于某种原因,这是不可能的,那么你可以使用两个数组和类似的技术在它们之间进行映射。
答案 1 :(得分:2)
只有Array
数组(但是,您需要用引号括起每个字符)和内置的indexOf()
方法var bengali = ["০", "১", "২", "৩", "৪", "৫", "৬", "৭", "৮", "৯"];
console.log(bengali.indexOf("০")); // index is: 0
console.log(bengali.indexOf("১")); // index is: 1
console.log(bengali.indexOf("২")); // index is: 2
console.log(bengali.indexOf("৩")); // index is: 3
console.log(bengali.indexOf("৪")); // index is: 4
console.log(bengali.indexOf("৫")); // index is: 5
console.log(bengali.indexOf("৬")); // index is: 6
console.log(bengali.indexOf("৭")); // index is: 7
console.log(bengali.indexOf("৮")); // index is: 8
console.log(bengali.indexOf("৯")); // index is: 9
,您拥有所需的一切。此代码演示了它:
replace
因此,您在 Dim path As String = Directory.GetCurrentDirectory()
Dim command As String = "cd " & path & " & " & argument
MsgBox(command)
Dim file As System.IO.StreamWriter
file = My.Computer.FileSystem.OpenTextFileWriter(tempFile, False)
file.WriteLine("@ECHO OFF")
file.WriteLine(command)
file.Close()
Dim objProcess As New Process()
Dim SROutput As System.IO.StreamReader
With objProcess.StartInfo
.FileName = tempFile
.RedirectStandardOutput = True
.UseShellExecute = False
.Arguments = ""
End With
objProcess.Start()
SROutput = objProcess.StandardOutput
Do While SROutput.Peek <> -1
'MessageBox.Show(SROutput.ReadLine)
rtbOutput.Text = rtbOutput.Text & SROutput.ReadLine & vbNewLine
Loop
objProcess.Dispose()
'Process.Start(tempFile)
rtbOutput.Text = rtbOutput.Text & message & vbNewLine
函数中所要做的就是返回您正在检查的字符的索引。
答案 2 :(得分:1)
每个人的答案都是可行的。但是 javascript 无法与直接孟加拉数字进行比较。您应该使用以下数组进行孟加拉语到英语的转换
var numbers = {
"\u09E6" : 0,
"\u09E7" : 1,
"\u09E8" : 2,
"\u09E9" : 3,
"\u09EA" : 4,
"\u09EB" : 5,
"\u09EC" : 6,
"\u09ED" : 7,
"\u09EE" : 8,
"\u09EF" : 9
};
答案 3 :(得分:0)
AJS中的工作代码
<h1>{{replaceNumbersE2B('123.456908')}}</h1>
<h1>{{replaceNumbersB2E('৪৫৬.৯০৮')}}</h1>
$scope.testNumber = "";
var numbersB = {
'০': 0,
'১': 1,
'২': 2,
'৩': 3,
'৪': 4,
'৫': 5,
'৬': 6,
'৭': 7,
'৮': 8,
'৯': 9
};
$scope.replaceNumbersB2E = function (input) {
var output = [];
for (var i = 0; i < input.length; ++i) {
if (numbersB.hasOwnProperty(input[i])) {
output.push(numbersB[input[i]]);
} else {
output.push(input[i]);
}
}
return output.join('');
}
//$scope.testNumber = $scope.replaceNumbersB2E('৯৭৩');
var numbersE = {
0:'০',
1:'১',
2:'২',
3:'৩',
4:'৪',
5:'৫',
6:'৬',
7:'৭',
8:'৮',
9:'৯'
};
$scope.replaceNumbersE2B = function (input) {
var output = [];
for (var i = 0; i < input.length; ++i) {
if (numbersE.hasOwnProperty(input[i])) {
output.push(numbersE[input[i]]);
} else {
output.push(input[i]);
}
}
return output.join('');
}
$scope.testNumber = $scope.replaceNumbersE2B('111.65666');
alert($scope.testNumber);
答案 4 :(得分:0)
英语为孟加拉语的数字
1,2,3 ...使用pipe(angular)或filter(angularjs)转换为১,২,৩ ....
角度示例:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'englishToBanglaNumber'
})
export class EnglishToBanglaNumberPipe implements PipeTransform {
transform(value: any, args?: any): any {
var finalEnlishToBanglaNumber = {
'0': '০', '1': '১', '2': '২', '3': '৩', '4': '৪', '5': '৫', '6': '৬', '7': '৭', '8': '৮', '9': '৯'
};
var retStr = value;
for (var x in finalEnlishToBanglaNumber) {
retStr = retStr.replace(new RegExp(x, 'g'), finalEnlishToBanglaNumber[x]);
}
return retStr;
}
}
在component.html中使用
<b>{{"123" | englishToBanglaNumber}}</b>
结果:১২৩
angularjs示例
app.filter('englishToBanglaNumber', [function () {
return function (text) {
var finalEnlishToBanglaNumber = {
'0': '০', '1': '১', '2': '২', '3': '৩', '4': '৪', '5': '৫', '6': '৬', '7': '৭', '8': '৮', '9': '৯'
};
String.prototype.getDigitBanglaFromEnglish = function () {
var retStr = this;
for (var x in finalEnlishToBanglaNumber) {
retStr = retStr.replace(new RegExp(x, 'g'), finalEnlishToBanglaNumber[x]);
}
return retStr;
};
return text.getDigitBanglaFromEnglish();
};
}]);
如果您将孟加拉语转换为英语,只需修改“替换方法”
retStr.replace(new RegExp(finalEnlishToBanglaNumber[x], 'g'), x);
答案 5 :(得分:0)
这也是一个很好的解决方案。
const convertBanglaToEnglishNumber=(str)=>{
let banglaNumber=
{'০': 0,
'১': 1,
'২': 2,
'৩': 3,
'৪': 4,
'৫': 5,
'৬': 6,
'৭': 7,
'৮': 8,
'৯': 9}
for (var x in banglaNumber) {
str = str.replace(new RegExp(x, 'g'), banglaNumber[x]);
}
return str;
}